mysql attach 语句_Mysql

查看 ubuntu 版本

lsb_release -a

选 source code

下面有很多版本, 选择Generic Linux (Architecture Independent), Compressed TAR Archive 这个版本

编译的工具

gcc

cmake

编译过程

假设源码解压后文件夹名为mysql

cd mysql

mkdir bld

cd bld

mkdir –p target/data

mkdir –p target/mysql

mkdir boost

cmake ..

-DCMAKE_INSTALL_PREFIX=/home/lindt

-DMYSQL_DATADIR=/home/lindt/data/

-DMYSQL_UNIX_ADDR=/home/lindt/bin/mysql.sock

-DDOWNLOAD_BOOST=1

-DWITH_BOOST=/home/lindt/boost

-DWITH_DEBUG=1

-DDEFAULT_CHARSET=utf8

-DDEFAULT_COLLATION=utf8_bin

-DWITH_EXTRA_CHARSETS:STRING =all

-DWITH_MYISAM_STORAGE_ENGINE=1

-DWITH_INNOBASE_STORAGE_ENGINE=1

-DWITH_INNODB_MEMCACHED=ON

-DWITH_EMBEDDED_SERVER=OFF

-DWITHOUT_NDBCLUSTER_STORAGE_ENGINE=1

-DENABLED_LOCAL_INFILE=1

-DCMAKE_BUILD_TYPE=debug

-DCMAKE_C_FLAGS="-o0 -g3"

-DCMAKE_CXX_FLAGS="-o0 -g3"

-DCMAKE_C_FLAGS_DEBUG="-o0 -g3"

-DCMAKE_CXX_FLAGS_DEBUG="-o0 -g3"

make

make install

cmake 编译问题

apt-get update

apt-get install cmake

apt-get install bison

apt-get install library*

apt-get install libncurses5-dev

apt-get install g++

apt-get install kdelibs5-dev

apt-get install make

更新以下packets

配置运行

切换到root用户

useradd mysql

cd target/mysql

chown –R mysql:mysql .

//为了方便,将指定配置文件my.cnf, 我放在附件里, 将这个文件放在 mysql/bld/target/mysql目录下, 里面写的绝对路径要相应改回来

初始化一些基础库

bin/mysqld --defaults-file=my.cnf --initialize-insecure --user=mysql

使用源码安装的mysql,请确认/etc/mysql/my.cnf是否存在,如果存在请删除,这部导致老有路径问题

unknown variable 'default-file=my.cnf' --defaults-file 要在最前面

bin/mysql_ssl_rsa_setup

chown –R root .

chown –R mysql:mysql ../data

my.cnf

[client]

port = 3307

socket = /home/zhangcb/Lab/mysql/src/bld/target/data/mysqld.sock

basedir = /home/zhangcb/Lab/mysql/src/bld/target/mysql

datadir = /home/zhangcb/Lab/mysql/src/bld/target/data

socket = /home/zhangcb/Lab/mysql/src/bld/target/data/mysqld.sock

port = 3307

server_id = 1

pid-file = /home/zhangcb/Lab/mysql/src/bld/target/data/mysqld.pid

bind-address = 127.0.0.1

log_error = /home/zhangcb/Lab/mysql/src/bld/target/data/error.log

log_bin = /home/zhangcb/Lab/mysql/src/bld/target/data/mysql-bin.log

expire_logs_days = 10

max_binlog_size = 100M

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

下面可以运行了

带密码初始化

./bin/mysqld --defaults-file=/home/lindt/etc/my.cnf --initialize --user=golden_lindt //--user 当前用户

不带密码初始化

./bin/mysqld --defaults-file=/home/lindt/etc/my.cnf --initialize-insecure --user=golden_lindt

启动

bin/mysqld_safe --defaults-file=/home/lindt/my.cnf &

关闭

mysqladmin -hlocalhost -uroot -p'xxx' -P5528 shutdown

用户修改密码

grant all on . to 'root'@'%' identified by 'db10

math?formula='%3B%20grant%20all%20on%20*.*%20to%20'root'%40'localhost'%20identified%20by%20'db10';

grant all on . to 'root'@'10.46.180.10' identified by 'db10$';

flush privileges;

插件安装

install plugin rpl_semi_sync_master_soname 'semisync_master.so'

install plugin rpl_semi_sync_slave_soname 'semisync_slave.so'

启动及查看

set global rpl_semi_sync_master_enabled =1;

set global rpl_semi_sync_slave_enabled =1;

select * from mysql.plugin;

创建rpl用户及复制

grant Replication client,Replication slave,Create routine,Create,Insert,Update,Delete,Drop,Select on . to 'repl'@'%' identified by 'repl' with grant option;

CHANGE MASTER TO MASTER_HOST='192.168.0.1',MASTER_USER='repl',MASTER_PASSWORD='repl',MASTER_PORT=5528;

客户端 –initialize-insecure 初始化的时候没加密码 所以直接回车就可以

bin/mysql --defaults-file=my.cnf -hlocalhost -uroot –p

---我并未输入密码,而是直接回车,因为之前用的参数是--initialize-insecure

调试 编译的时候编的是debug的版本

先找到服务器的进程号, 比如下面的

23543 pts/5 00:00:00 mysqld_safe

2 3766 pts/5 00:00:01 mysqld

启动gdb

gdb

attach到服务端的进程

attach 2 3766

下面可以设置断点(比如)

b mysql_parse

从客户端随便运行语句就可以一步一步调试,用gdb可以多使用bt命令看看调用堆栈

读代码可以从几个切入点去看 比如如何从disk获取一页数据,锁如何管理,如何写入的一页数据,线程如何管理等等。。。 一遍一遍看

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值