一、MySQL数据库安装
二、主从配置
1、 修改主服务器master:
#vi /etc/my.cn
log-bin=mysql-bin
server-id=2
3、修改从服务器slave
#vi/etc/my.cnf
log-bin=mysql-bin
server-id=3
1.主服务器创建同步账号:
GRANT REPLICATION SLAVE ON *.* TO 'mysql'@'%' identified by 'mysql';
%:是运行使用该用户的ip地址
mysql:是新创建的用户名
mysql:是新创建的用户名的密码
2.查看主服务器状态
show master status;
3.从服务器配置
change master to master_host='ip',master_user='mysql',master_password='mysql',master_log_file='mysql-bin.XXX',master_log_pos=XX;
start slave;
查询状态: show slave status\G;
如出现
Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: 'Could not find first log file name in binary log index file'
解决方法。
首先在从库上执行
stop slave;
查看主库master状态
1 mysql> show master status\G;
2 *************************** 1. row ***************************
3 File: mysql-bin.000113
4 Position: 276925387
5 Binlog_Do_DB:
6 Binlog_Ignore_DB:
7 Executed_Gtid_Set:
8 1 row in set (0.00 sec)
9
10 ERROR:
11 No query specified
12
13 mysql> flush logs;
14 Query OK, 0 rows affected (0.11 sec)
刷新binlog日志
flush logs;
刷新后的日志会+1
例如上面的 File: mysql-bin.000113 会变成 File: mysql-bin.000114
再次查看master状态
1 mysql> show master status\G;
2 *************************** 1. row ***************************
3 File: mysql-bin.000114
4 Position: 120
5 Binlog_Do_DB:
6 Binlog_Ignore_DB:
7 Executed_Gtid_Set:
8 1 row in set (0.00 sec)
9
10 ERROR:
11 No query specified
然后就不需要在操作master,切换到从库
输入CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000114',MASTER_LOG_POS=120;
执行start slave;
查看从库状态
安装成功后遇到问题
一、无法telnet通:
- 编辑防火墙配置文件vi /etc/sysconfig/iptables
- 增加-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT 不同的操作系统可能有差别
- 重启防火墙service iptables restart
二、没有用户名/密码
/etc/init.d/mysqld stop 停止mysql数据库
mysqld_safe --user=mysql --skip-grant-tables --skip-networking & 进入安全模式
mysql -u root -p 登录数据库
update mysql.user set authentication_string=password('123456') where user='root' and Host = 'localhost'; 修改root用户密码
FLUSH PRIVILEGES; 刷新权限
/etc/init.d/mysql restart
三、You must reset your password using ALTER USER statement before executing this statement.
SET PASSWORD = PASSWORD('mysql');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
flush privileges;
四、Host'*' is not allowed to connect to this MYSQL server
- 在装有MySQL的机器上登录MySQL mysql -u root -p
切换数据库
use mysql;
- 执行
update user set host = '%' where user = 'root';
-
执行
FLUSH PRIVILEGES;