mysql:错误:ERROR 1130: Host '192.168.1.3' is not allowed to connect to thisMySQL serve
root@CentOS~]mysql -u root -p #登录数据库
mysql>use mysql;
mysql>select 'host' from user where user='root';
mysql>update user set host = '%' where user ='root';
mysql>flush privileges;
mysql>select 'host' from user where user='root';
mysql:错误:ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'
1.关闭mysql
# service mysqld stop
2.屏蔽权限
# mysqld_safe --skip-grant-table
屏幕出现: Starting demo from .....
3.新开起一个终端输入
root@CentOS~]mysql -u root mysql
mysql> delete from user where USER='';
mysql> FLUSH PRIVILEGES;//记得要这句话,否则如果关闭先前的终端,又会出现原来的错误
mysql> q
Centos下MySQL主从同步配置
说明:由于MySQL不同版本之间的(二进制日志)binlog格式可能会不一样,
因此最好的搭配组合是Master的MySQL版本和Slave的版本相同或者更低,
Master的版本肯定不能高于Slave版本。(版本向下兼容)
一、环境
主机:master操作系统:centos 7 64位
IP:192.168.1.2 MySQL版本:5.6
从机:slave操作系统:centos 7 64位
IP:192.168.1.3 MySQL版本:5.6
二、创建测试数据库
分别登录master机和slave机的mysql:mysql –u root –p
创建数据库:create database repl;
三、master机和slave机的相关配置
1、修改master机器中mysql配置文件my.cnf,该文件在/etc目录下
在[mysqld]配置段添加如下字段
server-id=1
log-bin=mysql-bin
log-slave-updates=1
binlog-do-db=repl #需要同步的数据库,如果没有本行表示同步所有的数据库
binlog-ignore-db=mysql #被忽略的数据
在master机上为slave机添加一同步帐号:repl:用户名,从机ip地址,123456:密码
[root@CentOS ~]# mysql –uroot –p
Enter password: 输入密码
mysql>grant replication slave on *.* to 'repl'@'192.168.1.3' identified by '123456';
mysql>flush privileges;
退出数据库,重启master机的mysql服务:service mysqld restart
[root@CentOS ~]# service mysqld restart
master机进入数据库使用show master status 命令看日志情况
[root@CentOS ~]>show master status;
通过该命令获得File和Position,在slave中有用 。注:基准这里的“mysql-bin.000013”和“199”,在下面 “(3)设置Slave复制”的配置中会用到
2、修改slave机中mysql配置文件
(1)修改slave机器中mysql配置文件my.cnf,该文件在/etc目录下
同样在[mysqld]字段下添加如下内容
server-id=2
log-bin= mysql-bin
relay-log= mysql-relay-bin
read-only=1
log-slave-updates=1
replicate-do-db=repl #要同步的数据库,不写本行表示同步所有数据库
然后重启slave机的mysql:service mysqld restart
(2)在slave机上验证对主机(master)连接
[root@localhost ~]#mysql -h192.168.1.2 -urepl -p123456
获取MASTER_LOG_FILE,MASTER_LOG_POS
master机进入数据库使用show master status 命令看日志情况
[root@CentOS ~]>show master status;
(3)在从机上设置Slave复制
CHANGE MASTER TO
MASTER_HOST='192.168.1.2',
MASTER_USER='repl',
MASTER_PASSWORD='123456',
MASTER_PORT=3306,
MASTER_LOG_FILE='mysql-bin.000013',
MASTER_LOG_POS=199,
MASTER_CONNECT_RETRY=10;
启动成功运行SHOW SLAVE STATUS查看输出结果:
主要查看Slave_IO_Running和Slave_SQL_Running 两列是否都为YES
四、测试主从服务器是否能同步
(1)在主服务器上面新建一个表,必须在repl数据下
mysql> use repl
Database changed
mysql> create table test(id int(11) AUTO_INCREMENT ,name char(10), PRIMARY KEY (id));
Query OK, 0 rows affected (0.00 sec)
mysql> insert into test values(1,'zaq');
Query OK, 1 row affected (0.00 sec)
mysql> insert into test values(1,'xsw');
Query OK, 1 row affected (0.00 sec)
mysql> select * from test;
+------+------+
| id | name |
+-------+------+
| 1 | zaq |
| 1 | xsw |
+-------+------+
2 rows in set (0.00 sec)
(2)在从服务器查看是否同步过来
mysql> use repl;
Database changed
mysql> select * from test;
+------+------+
| id | name |
+------+------+
| 1 | zaq |
| 1 | xsw |
+------+------+
2 rows in set (0.00 sec)
说明已经配置成功。