24
24
- 安装依赖包、编译包:` yum install -y make gcc-c++ cmake bison-devel ncurses-devel `
25
25
- 进入解压目录:` cd /usr/program/mysql-5.6.29/ `
26
26
- 生成安装目录:` mkdir -p /usr/program/mysql/data `
27
- - 生成配置:` sudo cmake -DCMAKE_INSTALL_PREFIX=/usr/program/mysql -DMYSQL_DATADIR=/usr/program/mysql/data -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=utf8 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 `
27
+ - 生成配置(使用 InnoDB) :` sudo cmake -DCMAKE_INSTALL_PREFIX=/usr/program/mysql -DMYSQL_DATADIR=/usr/program/mysql/data -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=utf8 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DENABLED_LOCAL_INFILE=1 `
28
28
- 更多参数说明可以查看:< http://dev.mysql.com/doc/refman/5.6/en/source-configuration-options.html >
29
29
- 编译:` sudo make ` ,这个过程比较漫长,一般都在 30 分钟左右,具体还得看机子配置,如果最后结果有 error,建议删除整个 mysql 目录后重新解压一个出来继续处理
30
30
- 安装:` sudo make install `
53
53
- 现在进入了 mysql 命令行管理界面,输入:` SET PASSWORD = PASSWORD('123456'); `
54
54
- 修改密码后,终端下执行:` mysql -uroot -p `
55
55
- 根据提示,输入密码进度 mysql 命令行状态。
56
+ - 如果你在其他机子上连接该数据库机子报:** Access denied for user 'root'@'localhost' (using password: YES)**
57
+ - 解决办法:
58
+ - 在终端中执行:`service mysql stop`
59
+ - 在终端中执行:`/usr/program/mysql/bin/mysqld --skip-grant-tables`
60
+ - 此时 MySQL 服务会一直处于监听状态,你需要另起一个终端窗口来执行接下来的操作
61
+ - 在终端中执行:`mysql -u root mysql`
62
+ - 进入 MySQL 命令后执行:`UPDATE user SET Password=PASSWORD('填写你要的新密码') where USER='root';FLUSH PRIVILEGES;`
63
+ - 重启 MySQL 服务:`service mysql restart`
64
+
65
+
66
+ ## Mysql 配置
67
+
68
+ - 官网配置参数解释:< http://dev.mysql.com/doc/refman/5.6/en/mysqld-option-tables.html >
69
+ - 找一下当前系统中有多少个 my.cnf 文件:` find / -name "my.cnf" ` ,我查到的结果:
70
+ ``` nginx
71
+ /etc/my.cnf
72
+ /usr/program/mysql/my.cnf
73
+ /usr/program/mysql/mysql-test/suite/ndb/my.cnf
74
+ /usr/program/mysql/mysql-test/suite/ndb_big/my.cnf
75
+ .............
76
+ /usr/program/mysql/mysql-test/suite/ndb_rpl/my.cnf
77
+ ```
78
+ - 保留 **/etc/my.cnf** 和 **/usr/program/mysql/mysql-test/** 目录下配置文件,其他删除掉。
56
79
57
80
58
81
59
82
## MySQL 主从复制
60
83
84
+ ### 环境说明和注意点
85
+
61
86
- 假设有两台服务器,一台做主,一台做从
62
87
- MySQL 主信息:
63
- - IP:** 12.168.1.113** =
88
+ - IP:** 12.168.1.113**
64
89
- 端口:** 3306**
65
90
- MySQL 从信息:
66
91
- IP:** 12.168.1.115**
67
92
- 端口:** 3306**
68
93
- 注意点
69
94
- 主 DB server 和从 DB server 数据库的版本一致
70
95
- 主 DB server 和从 DB server 数据库数据一致
71
- - 主 DB server 开启二进制日志,主 DB server 和从 DB server 的 server_id 都必须唯一
96
+ - 主 DB server 开启二进制日志,主 DB server 和从 DB server 的 server-id 都必须唯一
72
97
- 优先操作:
73
- - 把主库的数据库复制到从库并导入
98
+ - ** 把主库的数据库复制到从库并导入**
99
+
100
+ ### 主库机子操作
101
+
74
102
- 主库操作步骤
75
- - 创建一个目录:`mkdir -p /usr/program/mysql/data/log -bin`
76
- - 主 DB 开启二进制日志功能:`vim /usr/program/mysql /my.cnf`,
77
- - 添加一行:`log-bin = /usr/program/mysql/data/log -bin`
103
+ - 创建一个目录:`mkdir -p /usr/program/mysql/data/mysql -bin`
104
+ - 主 DB 开启二进制日志功能:`vim /etc /my.cnf`,
105
+ - 添加一行:`log-bin = /usr/program/mysql/data/mysql -bin`
78
106
- 指定同步的数据库,如果不指定则同步全部数据库,其中 ssm 是我的数据库名:`binlog-do-db=ssm`
79
107
- 重启主库 MySQL 服务
80
108
- 进入 MySQL 命令行状态,执行 SQL 语句查询状态:`SHOW MASTER STATUS`
81
109
- 在显示的结果中,我们需要记录下 **File** 和 **Position** 值,等下从库配置有用。
82
110
- 设置授权用户 slave01 使用 123456 密码登录主库,这里 @ 后的 IP 为从库机子的 IP 地址,如果从库的机子有多个,我们需要多个这个 SQL 语句。
83
111
84
112
``` SQL
85
- grant replication slave on *.* to 'slave01'@'192.168.1.133 ' identified by '123456';
113
+ grant replication slave on *.* to 'slave01'@'192.168.1.135 ' identified by '123456';
86
114
flush privileges;
87
115
```
88
116
89
- - 从库操作步骤
90
117
118
+ ### 从库机子操作
119
+
120
+
121
+ - 从库操作步骤
122
+ - 测试从库机子是否能连上主库机子:` sudo mysql -h 192.168.1.105 -u slave01 -p ` ,必须要连上下面的操作才有意义。
123
+ - 由于不能排除是不是系统防火墙的问题,所以建议连不上临时关掉防火墙:`service iptables stop`
124
+ - 或是添加防火墙规则:
125
+ - 添加规则:`sudo iptables -I INPUT -p tcp -m tcp --dport 3306 -j ACCEPT`
126
+ - 保存规则:`sudo service iptables save`
127
+ - 重启 iptables:`sudo service iptables restart`
128
+ - 修改配置文件:` vim /etc/my.cnf ` ,把 server-id 改为跟主库不一样
91
129
- 在进入 MySQL 的命令行状态下,输入下面 SQL:
92
130
93
131
``` SQL
@@ -104,6 +142,7 @@ master_log_pos=1120;>>>这个值复制刚刚让你记录的值
104
142
- 执行该 SQL 语句,查看从库机子同步状态:` SHOW SLAVE STATUS; `
105
143
- 在查看结果中必须下面两个值都是 Yes 才表示配置成功:
106
144
- ` Slave_IO_Running:Yes `
145
+ - 如果不是 Yes 也不是 No,而是 Connecting,那就表示从机连不上主库,需要你进一步排查连接问题。
107
146
- ` Slave_SQL_Running:Yes `
108
147
- 如果你的 Slave_IO_Running 是 No, 那你可以检查从库下的错误日志:` cat /usr/program/mysql/data/mysql-error.log `
109
148
- 如果里面提示 uuid 错误,你可以编辑从库的这个配置文件:` vim /usr/program/mysql/data/auto.cnf ` ,把配置文件中的:server-uuid 值随便改一下,保证和主库是不一样的。
0 commit comments