远程登录权限问题
数据库服务器ip为:192.168.2.110 但是我在ip为192.168.2.66的机器上通过Navicat工具连接的时候会显示密码错误或者登录失败,原因是默认的mysql配置是不允许root账号远程登录的,必须要对地址进行授权。
grant select,update on menggu.* to root@192.168.2.66 identified by ‘123456’;
说明:menggu为数据库名称,root为账号名称,@后面是要远程登录数据库的ip地址,by 后面的是密码
配置主从服务器(基于Linux的MySQL)
原理简介
没有那么多官方化的东西,按照本人的理解,数据库主从配置就是:主服务器中通过分配一个账号给从数据库,从数据根据主服务器中的日志文件来进行数据的同步。
主数据库配置(ip为192.168.2.128)
创建账号
[1]: create user ‘luotongchao’ @’%’ identified by ‘root’
分配权限
[2]:grant all on . to luotongchao@”%” identified by “root”
修改配置文件
[3]:修改 /etc/my.cnf
3.1每一个数据库服务器都要制定一个唯一的server-id,通常主服务器制定为1
server_id =1
3.2 需要记录日志的数据库名,如果复制多个数据库,重复这只这项即可。如果没有本行即表示同步所有的数据库。
binlog-do-db=test
3.3MySQL进行主从复制是通过二进制的日志文件来进行的,所以必须开启MySQL的日志功能(这个是/etc/my.cnf的默认配置,保持不变即可)
log-bin=mysql-bin
3.4 总结:
注意:
1.这几行代码必须要卸载[mysqld]
2.log-bin = /var/lib/mysql/mysql-bin 注意路径,网上有写的log_bin
从数据库配置
在主服务器中执行如下代码:
GRANT REPLICATION SLAVE ON . to ‘luotongchao’@’192.168.5.130’ IDENTIFIED BY ‘root’;
grant all PRIVILEGES on . to luotongchao@’192.168.5.130’ identified by ‘root’ WITH GRANT OPTION;
flush privileges(记得这步,刷新权限)
更改配置文件
从服务器的id(window下只需要配置一个ID即可。。。。)
server-id=2
设置主服务器的IP###
mast-host=192.168.5.128
设置连接主服务器的用户名###
mast-user=ltc
设置连接主服务器的密码###
mast-password=root
配置成端口默认是3306###
mast-port=3306
设置要同步的数据库,可以设置多个###
replicate-do-db=test
同步数据
从服务器中执行如下代码:
CHANGE MASTER TO MASTER_LOG_FILE=’mysql_bin.000001’,MASTER_LOG_POS=102;
这里的MASTER_LOG_POS是指从哪个位置开始同步。
可能会出现以下的错误:
The server is not configured as slave; fix in config file or with CHANGE MASTER TO
这是因为.sever-id没有生效2.没有配置好
解决方式
查看是否设置了server_id
SHOW VARIABLES LIKE ‘server_id’;
Slave stop
然后执行下面的语句:
Change master to
master_host=’192.168.5.128’,master_user=’luotongchao’,master_password=’root’,master_log_file=’mysql_bin.000001’ ,master_log_pos=106;