一、MySQL远程访问
远端的是MySQL5.5,本地是5.6。只需在远端如下设置:
1、添加远程账号:GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root' WITH GRANT OPTION;,这里的%代表任意IP,如果想限定某IP,如只给192.168.1.1远程,那将%改为192.168.1.1。ALL PRIVILEGES是所有权限,如果只给select,update,那就改为select,update。这里的账号和密码都是root,可以自定义改。
然后,运行“flush privileges;
2、关闭远端的防火墙,或者打开3306的端口,给所有程序,或者只给mysqld.exe开放,否则,本地登陆出现如下的错误。
ERROR 2003 (HY000): Can't connect to MySQL server on '*.*.*.*' (10060)
二、主从同步MySQL
1、 远端设置在my.ini配置,在其[mysqld] 下添加主服务器端配置:
server-id=1 #服务器 id
log-bin=C:\Program Files\MySQL\MySQL Server 5.5\mysql-bin #二进制文件存放路径
binlog-do-db=test1 #待同步的数据库
2、给要连接的从服务器设置权限:grant replication slave,reload,super on *.* to slave@192.168.1.193 identified by '123456'; ps: 给主机192.168.1.193添加权限,用户名:slave,密码:123456;(只需输入一次就可以了)
3、输入命令 show master status; # 找到File 和 Position 的值记录下来;Position的值在从服务器要配置
4、从服务器my.ini配置,在[mysqld]添加配置
#server-id=2 #服务器 id ,不能和主服务器一致
#replicate-do-db=test1 #待同步的数据库
5、从服务器登陆MySQL设置:mysql> change master to master_host='192.168.1.1',master_user='slave',master_p
assword='abcd', master_log_file='mysql-bin.000001',master_log_pos=107;
上面的107是主服务器的Posion,不过这个值不断在增加,000001也是file的名,不变。
6、start slave;,再用show slave status\G;,如果可以看到:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
以上两项都为Yes,那说明没问题了。
但是,我设置的出错了:Fatal error: The slave I/O thread stops because a fatal error is encountered when it tries to get the value of SERVER_UUID variable from master.百度找不到这个错,找不到解决,搞了下午。。。
先记录,反正远程的可以先用。