第一次写技术文章,因为工作在网上查了那么多文章也学到了很多,但自己好像从没写个什么,先写个试试不知道能不能坚持,东西也不难,都是个人实践,给自己记录下以后也可以回顾回顾,同时也希望也能有人因为看了我的文章并用上
第一步:创建mysql主用户
1.登录mysql:mysql -u root -p
2.创建mysql用户:create user starsky
@%
identified by “root”;
3.给与权限:grant all on . to starsky
@%
with grant option;
第二步:配置主从
1.主:查看二进制日志:show master status;
2.从:修改server-id=2
3.从:主信息配置到从
change master to master_host=“112.124.30.239”,master_port=3306,master_user=‘test001’,master_password=‘z5K2brNZBRzydpe2’,master_log_file=“mysql-bin.000005”,master_log_pos=4;
4.启动从节点:start slave;
5.查看从是否配置成功:show slave status \G ( Slave_IO_Running与Slave_SQL_Running都为Yes则配置成功)
6.Laravel读写分离配置比较简单,只需修改config/database.php
'mysql' => [
'driver' => 'mysql',
'write' => [ //主库配置
'host' => '127.0.0.1',
'username' => 'test001',
'password' => 'z5K2brNZBRzydpe2',
],
'read' => [ //从库配置
'host' => '124.222.167.159',
'username' => 'test001',
'password' => 't4CiMbzk5BARBkny',
],
'url' => env('DATABASE_URL'),
],
配置中出现的错误
1.使用show slave status \G查看配置后Slave_IO_Running等于Connecting(正确应该是Yes)
解决:主:更改用户权限:执行grant all on . to test001
@%
with grant option;
2.执行(上面1的更改用户权限)后使用show slave status \G查看配置后Slave_SQL_Running等于Connecting(正确应该是Yes)
解决:建一个和主库一样的数据库,表也一样,里面有内容提示Error ‘Duplicate entry ‘1’ for key ‘PRIMARY’’ on query(键“PRIMARY”的错误“1”重复),删掉里面内容就 Slave_IO_Running: Yes和Slave_SQL_Running: Yes
3.最后还是需要配置前主从数据库表内容一致