Mysql安装8.0+版本,以及主从复制的配置。

下载

下载地址

这里下载软件是压缩包形式的,由于我们需要搭建主从复制,所有我们需要安装多个Mysql实例,使用压缩包形式的便于管理和安装。

安装

解压下载文件,包含bin目录的为根目录,在根目录下面新建my.ini文件,
文件内容

[mysqld]
# 设置3306端口
port=3308
# 设置mysql的安装目录
basedir=D:\Software\mysql\mysql-8.0.30-winx6422
# 设置mysql数据库的数据的存放目录
datadir=D:\Software\mysql\mysql-8.0.30-winx6422\data
# 此处同上
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8mb4
collation-server = utf8mb4_unicode_ci
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3308
default-character-set=utf8mb4

解释一下,端口不是3306是因为我需要在电脑上装多个Mysql,安装位置和数据存储位置,自己修改。

下面就就是执行安装命令,使用管理员权限打开cmd,然后进入根目录中的bin目录下,执行,mysqld install mysql_11命令,最后为服务名称,就是我们执行net start 命令时启动的服务,我这里设置成了mysql_11,那么我执行的命令启动命令就应该是,net start mysql

还是 在这个目录下执行初始化命令 mysqld --initialize --console,留意包含这样内容的输出内容。[Server] A temporary password is generated for root@localhost: 这里是临时密码需要保存起来

操作无误时这个时候就可以启动服务了,命令:net start mysql_11, 必须使用管理员权限打开cmd执行命令,输出成功启动,则可以登陆

登录

命令:mysql -uroot -p
按回车之后然后会提示你输入密码:
登录mysql
也可以将密码直接填写在-p后面。例如:对于用户名为root,密码为abcd的账号,可以使用如下方式登录:
mysql -uroot -pabcd。注意:-u和用户名,-p和密码之间没有空格。
mysql的一些参数:

-u指定用户名。
-p指定密码。
-h指定主机地址。默认为localhost
-P指定端口号,默认为3306(mysql服务默认的启动端口为3306)。例如:-P13306表示连接端口号为13306的MySQL服务器。(注意:密码为小写的p,端口号为大写的P)
可以在配置文件中指定启动的端口号。

修改密码

登录之后,在输入命令时,前面的提示符为:mysql >在这后面输入的语句中,默认提交符号为分号(;)。按回车时只会换行,并不会提交语句。之后输入;之后按回车才会提交语句。

如果前面对mysql进行初始化使用的是--initialize-insecure命令,则密码为空,在输入密码时直接按回车即可。登录之后,不用修改密码即可直接使用MySQL。例如:创建数据库等操作。
如果前面对mysql进行初始化使用的是--initialize命令,则密码为系统随机生成的一个字符串。登录之后需要修改密码才能使用。
若不修改密码,直接操作数据库,会出现如下错误:
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
使用如下命令修改密码:
set password='new_password';注意:新的密码前后有单引号。在mysql中,单引号之间表示的是字符串。
alter user 'root'@'localhost' password expire never;设置密码永不过期。
flush privileges;刷新权限。
之后退出(使用q,或者exit或者quit都可以退出),然后重新登录即可。
至此,可以正常使用MySQL了。

安装多个

端口不能一致,然后mysql install [服务名],服务名不能一致。就酱。

主从复制配置

安装多个数据库

安装教程就是上面在重新装一个即可,改一下端口号以及服务的名称即可。当然这是在一台机器上,实际上主从复制应该是在不同机器上进行的操作。

配置主库

#在mysqld下增加配置
#服务器ID标志,必须配置,每个节点不同
server_id=1
#开启bin log日志文件,文件名为mysql-bin的前缀
log-bin=mysql-bin

重启主库

查看主库状态

show master status;

主要关注FilePosition字段

设置从库

从库设置server_id和主库不一样就行了,设置后重启。

如果需要设置从库只读则加上这两行

read_only=1 #限定普通用户只读
super_read_only=on #限定root只读

然后在从库客户端配置连接主库相关信息:

change master to 
    master_host = '192.168.127.147', 
    master_user = 'replica', 
    master_port=3306, 
    master_password='123456', 
    master_log_file = 'mysql-bin.000001', 
    master_log_pos=156;

里面的内容自己修改成对应的主库地址用户以及密码。

开启主从复制

start slave;
show slave status\G;

这次操作只是简单的演示了一下,主从操作,还有很多情况并未一一详述,比如主库中有数据时怎么处理,又或者只同步一个库应该怎么配置,还有如何设置从库只读,等等,这些都需要多多去学习,去操作。

卸载

解压版的卸载很简单啊,首先停止服务net stop mysql,在执行命令mysqld -remove [服务名]mysqld -remove MySQL, 最后删除文件即可。解压版的不需要清理注册表。

麻匪 女孩 脸 红色的花 唯美


Mysql安装8.0+版本,以及主从复制的配置。
https://wangijun.com/2022/08/23/other-07/
作者
无良芳
发布于
2022年8月23日
许可协议