Mysql主从复制 从数据库无法启动

观察注册表(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MYSQL),主数据库的ImagePath项长这样C:\MySql\mysql-8.0.17-winx64\bin\mysqld MySQL

本人按照其他教程配成这样C:\MySql\mysql-8.0.17\mysql-8.0.17-winx64\bin\mysqld --default-file=C:\MySql\mysql-8.0.17\mysql-8.0.17-winx64\my.ini mysqls1结果无法启动

最后对比修改为C:\MySql\mysql-8.0.17\mysql-8.0.17-winx64\bin\mysqld mysqls1

启动成功。

另附命令
启动、关闭、移除服务mysqls1
net start mysqls1
net stop mysqls1
mysqld --remove mysqls1

初始化data目录,在bin目录下执行。
mysqld --initialize --user=mysql --console

注册从数据库服务mysqls1
mysqld install mysqls1 --default-file="C:\MySql\mysql-8.0.17\mysql-8.0.17-winx64\my.ini"

移除从数据库mysqls1
mysqld --remove mysqls1

8.0下设置新密码

bin>alter user 'root'@'localhost' identified with mysql_native_password by '新密码'

bin>flush privileges;

创建用户
mysql> create user ‘root’@’%’ identified by ‘密码’;
Query OK, 0 rows affected (2.35 sec)
授权
mysql> grant all privileges on . to ‘root’@’%’;
Query OK, 0 rows affected (0.06 sec)
刷新
mysql> flush privileges;
Query OK, 0 rows affected (0.06 sec)

从数据库

stop slave;
change master to
master_host=‘localhost’,
master_user=‘wufan’,
master_password=‘qq1780636778’,
master_log_file=‘mysql-bin.000018’,
master_log_pos=155;
start slave;
show slave status;

重装数据库后更改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
或者
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码'';

mysql_native_password和caching_sha2_password两种方式 在my.ini配置项default_authentication_plugin=mysql_native_password

select user,host,plugin from mysql.user;

主从数据库my.ini配置

主数据库
port=3306
default_authentication_plugin=mysql_native_password
#唯一 ,要与备机的不同
server_id = 1
#开启二进制日志
log-bin= mysql-bin
#需要同步的数据库
binlog-do-db=user_db
#不需要屏蔽的数据库
binlog-ignore-db=mysql
binlog-ignore-db=information_schema
binlog-ignore-db=performance_schema
binlog_format=ROW

从数据库
port=3307
[mysqld]
port=3307
default_authentication_plugin=mysql_native_password
server_id=2
#开启二进制日志
log-bin= mysql-bin
binlog_format=ROW
#需要同步的数据库
replicate_wild_do_table=user_db.%
#不需要屏蔽的数据库
replicate_wild_ignore_table=mysql.%
replicate_wild_ignore_table=information_schema.%
replicate_wild_ignore_table=performance_schema.%

注册表项

C:\MySql\mysql-8.0.17\mysql-8.0.17-winx64\bin\mysqld mysqls1
即mysql服务目录+服务名(在服务里面找得到)

恢复数据库命令 mysql -u root -p < C:\MySql\mysql-8.0.17-winx64\sqlfile23.sql

备份数据库
mysqldump -u username -p dbname [tbname …]> filename.sql
对上述语法参数说明如下:
username:表示用户名称;
dbname:表示需要备份的数据库名称;
tbname:表示数据库中需要备份的数据表,可以指定多个数据表。省略该参数时,会备份整个数据库;
右箭头“>”:用来告诉 mysqldump 将备份数据表的定义和数据写入备份文件;
filename.sql:表示备份文件的名称,文件名前面可以加绝对路径。通常将数据库备份成一个后缀名为.sql的文件。

猜你喜欢

转载自blog.csdn.net/qq_34713855/article/details/109959745
今日推荐