GDB debugging MySQL actual combat source code compilation and installation

GDB debugging MySQL actual combat source code compilation and installation

Download source code

git clone https://github.com/mysql/mysql-server.git
cd mysql-server
git checkout 5.7

Compile and install

Install Dependencies

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

One thing to note is that you need to specify the boost path, which will be automatically downloaded when cmake is run.

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

Finally, the program is installed in the /usr/local/mysql directory

Create a dedicated user

groupadd mysql
useradd -s /sbin/nologin -M -g mysql mysql

Initialize the database

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<swtX.8og

Connecting to a database

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

It turns out that the client socket file is not pinned in the configuration file.

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

Increase

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

Connect again and it's ok.

Change the default password

SET PASSWORD = PASSWORD('123456');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
flush privileges;

Importing test data

/usr/local/mysql/bin/mysql -uroot -p123456 test < article_rank.sql

Summarize

The above is the full content of this article. I hope that the content of this article will have certain reference learning value for your study or work. Thank you for your support of 123WORDPRESS.COM. If you want to learn more about this, please check out the following links

You may also be interested in:
  • Mysql LONGBLOB type stores binary data (modification + debugging + sorting)
  • Mysql LONGTEXT type stores large files (binary is also possible) (modification + debugging + sorting)
  • Mysql insert Chinese and Chinese query (modification + debugging)
  • Novice configuration PHP debugging environment (IIS+PHP+MYSQL)
  • Related methods of MySQL UDF debugging mode debugview
  • Share 101 MySQL debugging and optimization tips
  • How MLSQL Stack makes stream debugging easier

<<:  Install Docker for Windows on Windows 10 Home Edition

>>:  JavaScript canvas to achieve code rain effect

Recommend

Solve the problem that the IP address obtained using nginx is 127.0.0.1

Get ip tool import lombok.extern.slf4j.Slf4j; imp...

Detailed explanation of the basic use of react-navigation6.x routing library

Table of contents react-native project initializa...

Implementation of k8s deployment of docker container

Environment: (docker, k8s cluster), continue with...

Using better-scroll component in Vue to realize horizontal scrolling function

About Recently, in the process of learning Vue, I...

Vue.js cloud storage realizes image upload function

Preface Tip: The following is the main content of...

How to hide the border/separation line between cells in a table

Only show the top border <table frame=above>...

CSS3 realizes the website product display effect diagram

This article introduces the effect of website pro...

Detailed explanation of JavaScript object conversion to primitive value

Table of contents Object.prototype.valueOf() Obje...

CSS new feature contain controls page redrawing and rearrangement issues

Before introducing the new CSS property contain, ...

Application of mapState idea in vuex

Table of contents 1. Map method 2. Application ba...

Vue.js implements tab switching and color change operation explanation

When implementing this function, the method I bor...

Vue detailed introductory notes

Table of contents 1. Introduction 2. Initial Vue ...

Detailed process of zabbix monitoring process and port through agent

Environment Introduction Operating system: centos...