资讯专栏INFORMATION COLUMN

GDB 调试 Mysql 实战(一)源码编译安装

codecook / 2955人阅读

摘要:下载源码编译安装安装依赖需要注意的一点,需要指定路径,会的时候自动下载最后程序安装到了目录创建专用用户初始化数据库连接数据库原来是因为配置文件里面没有置顶客户端的文件增加再次连接就了。修改默认密码导入测试数据

下载源码
git clone https://github.com/mysql/mysql-server.git
cd mysql-server
git checkout 5.7
编译安装

安装依赖

yum install -y cmake make gcc gcc-c++ ncurses-devel bison gdb

需要注意的一点,需要指定 boost 路径,会 cmake 的时候自动下载

cd BUILD; 
cmake .. -DDOWNLOAD_BOOST=1 -DWITH_BOOST= -DWITH_DEBUG=1 -DWITH_UNIT_TESTS=off
make 
make install

最后程序安装到了/usr/local/mysql目录

创建专用用户
groupadd mysql
useradd -s /sbin/nologin -M -g mysql mysql

初始化数据库

cd /usr/local/mysql/
bin/mysqld --defaults-file=/etc/my.cnf --initialize --user=mysql

2019-02-01T07:45:58.147032Z 1 [Note] A temporary password is generated for root@localhost: jss

连接数据库

[root@bogon bin]# ./mysql -h localhost -uroot
ERROR 2002 (HY000): Can"t connect to local MySQL server through socket "/tmp/mysql.sock" (2)

原来是因为配置文件里面没有置顶客户端的 socket 文件

cat /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

增加

[client]
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock
[mysql]
default-character-set=utf8
socket=/var/lib/mysql/mysql.sock

再次连接就 ok 了。

修改默认密码
SET PASSWORD = PASSWORD("123456");
ALTER USER "root"@"localhost" PASSWORD EXPIRE NEVER;
flush privileges;
导入测试数据
/usr/local/mysql/bin/mysql -uroot -p123456 test < article_rank.sql
https://www.linuxidc.com/Linu...
https://www.cnblogs.com/debmz...

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/48480.html

相关文章

  • GDB 调试 Mysql 实战(二)GDB 调试打印

    摘要:通过其他实验也发现的长度就是数组里面所有字段的字段长度和再加。附录完整的调试信息如下 背景 在 https://mengkang.net/1328.html 实验中,我们通过optimizer_trace发现group by会使用intermediate_tmp_table,而且里面的的row_length是20,抱着打破砂锅问到底的求学精神,所以想通过 gdb 调试源码的方式看这个r...

    roland_reed 评论0 收藏0
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(下)

    摘要:上一篇调试实战三优先队列排序算法探究上分析了实验中的为什么是。其他实验的都是,扫描行数也不符合预期。注释中写道上面调试记录文字非截图中的值为。 背景 接着 https://mengkang.net/1328.html 的案例,我们继续磕。上一篇 GDB 调试 Mysql 实战(三)优先队列排序算法探究(上) 分析了实验3中的row_size为什么是24。其他实验的row_size都是3...

    Backache 评论0 收藏0
  • GDB 调试 Mysql 实战(三)优先队列排序算法中的行记录长度统计是怎么来的(上)

    摘要:本篇文章关键字优先队列排序算法小顶堆大顶堆背景接着的案例,我们继续磕。根据实验中调试打印可知道,临时表存的两个字段是和。不要忘了这里选择优先队列排序算法依然受到的限制。 本篇文章关键字:优先队列排序算法、小顶堆、大顶堆 背景 接着 https://mengkang.net/1328.html 的案例,我们继续磕。 回顾下实验3中的例子 select `aid`,sum(`pv`) as...

    shiguibiao 评论0 收藏0
  • Linux下用户空间调试工具

    摘要:有几个下的用户空间调试工具和技术,他们用来分析用户空间问题相当有用。捕捉库调用的输出是一套调试和分析工具。在种获得帮助总结在这篇文章中,我们已经看到不同类型的用户空间的调试工具。 根据定义,调试工具是那些那些使我们能够监测、控制和纠正其他程序的程序。我们为什么应该用调试工具呢? 在有些情况下,运行一些程序的时候我们会被卡住,我们需要明白究竟发生了什么。 例如, 我们正在运行应用程序,它...

    Leck1e 评论0 收藏0
  • 使用VS Code调试MySQL

    摘要:简称是由微软开发的,同时支持和操作系统的开源文本编辑器。接下来,为项目配置调试参数。这种方式用在目标变量达到某条件时触发断点,其余则跳过继续执行。和都支持远程调试,这里以为例。 作者:洪斌 简介 MySQL调试是探索MySQL源码的基本技能,之前介绍过如何使用LLDB调试MySQL,但命令行操作不便,在编辑器和终端之间来回切换,查看代码不便,本文将介绍在Mac OS中如何使用VS Co...

    Y3G 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<