赞
踩
官网下载对国内来说太慢了,,使用国内的镜像去下载速度很快。
下载完成后,双击安装(或直接解压缩),选择第二项 custom, 路径为:我本地安装地址 D:\allsoftware\mysql8
手动新建一个 文件夹,名称为 data, 位置在刚刚安装的 mysql 目录下:D:\allsoftware\mysql8\data
手动新建一个文件,名称为 my.ini,位置在刚刚安装的 mysql 目录下:D:\allsoftware\mysql8\my.ini
[client]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
# 设置mysql的默认端口
port=3306
# 设置mysql的安装目录
basedir=D:\\allsoftware\\mysql8
# 设置 mysql数据库存放目录
datadir=D:\\allsoftware\\mysql8\\data
# 允许最大连接数
max_connections=20
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
切换到 mysql 安装目录的 bin 目录下执行
mysqld --initialize-insecure
(这一步是初始化 mysql 设置)
D:\allsoftware>mysql8>bin> mysqld --initialize-insecure
D:\allsoftware>mysql8>bin> mysqld --verbose --help > D:\allsoftware\mysql8\mysql_win_help_docs.txt
执行这一句,很长:
mysqld --verbose --help > d:\work\mysql_win_help_docs.txt
(这一步是设置 mysql 帮助文档: 存放在哪里,名称叫什么 mysql_win_help_docs.txt )
执行命令 mysqld install
D:\allsoftware>mysql8>bin> mysqld install
在当前目录下输入 services.msc,在打开的服务控制台中按下按键 M,仔细查找, 如果出现了 MySQL,那么说明安装 mysql 服务成功,并且成功在 windows 系统中注册。
# 启动服务
net start mysql
# 其他指令
# 停止服务。无需执行此操作
net stop mysql
# 卸载服务。无需执行此操作
sc delete mysql
新打开一个 cmd ,输入 mysql -uroot -p -P 3306,接下来让你输入密码,我们
直接回车
,出现 mysql那么就成功连接到数据库了
提示: 在第 10 步骤为什么能够链接到数据库,其实就是使用前面创建的 my.ini 这个配置文件,用户名为 root, 密码没有设置,默认为 空,端口为默认 3306
提示:如果出现 ‘mysql’ 不是内部或外部命令,也不是可运行的程序。那么在系统环境变量Path中添加
D:\allsoftware\mysql8\bin
到这里安装MySQL已经完成,拓展部份是为后续学习MySQL主从复制(主从数据库其实就是两个数据库,一个作为主要存储数据,一个作为备份数据,并且主数据库可以自动备份数据到从数据库)做准备,可以略过。
在使用MySQL时,常常需要用到主从复制以减轻服务器的压力,在本地联系测试时就需要安装多个MySQL服务。
以MySQL5.7.3为例,步骤较多,基本与MySQL8重复:
文件夹data
,位于D:\allsoftware\mysql\MySQL5.7\data文件my.ini
,位于D:\allsoftware\mysql\MySQL5.7\my.ini文件夹复制一份
,并重命名为: D:\allsoftware\mysql\MySQL5.7Slavemy.ini
D:\allsoftware\mysql\MySQL5.7\my.ini , 重点注意开启二进制日志文件记录
[client]
port=3306
[mysql]
no-beep
default-character-set=utf8
[mysqld]
port=3306
character-set-server=utf8
default-storage-engine=INNODB
basedir=D:/allsoftware/mysql/MySQL5.7/
datadir=D:/allsoftware/mysql/MySQL5.7/data/Data
explicit_defaults_for_timestamp=true
# 必须开启二进制文件记录日志
log-bin=mysql-bin
server-id=1
my.ini
D:\allsoftware\mysql\MySQL5.7Slave\my.ini , 重点注意,从数据库配置
- port=3307 ,所有的端口是3307,与主数据库不同
- server-id =2 ,与主数据库不同
- binlog_do_db=x_user, 设置将主数据库哪些表同步到从库中,此处示例为表:x_user
- binlog_ignore_db=sk_user 设置不将主数据库哪些表同步到从库中,此处示例为表;:sk_user,sk_money,sk_address
[client]
port=3307
[mysql]
no-beep
default-character-set=utf8
[mysqld]
port=3307
character-set-server=utf8
default-storage-engine=INNODB
basedir=D:/allsoftware/mysql/MySQL5.7Slave/
datadir=D:/allsoftware/mysql/MySQL5.7Slave/data/Data
explicit_defaults_for_timestamp=true
#开启了二进制文件
log-bin=mysql-bin
server-id=2
# 主从复制:将要复制的主库中数据库名称,必须与主数据库其中之一名称对应
binlog_do_db=x_user
# 主从复制:不参与主从复制的数据库,例如 sk_user,sk_money,sk_address......等等
binlog_ignore_db=sk_user
binlog_ignore_db=sk_money
binlog_ignore_db=sk_address
8.接下来将主数据库注册为 windows服务
在主数据库bin文件夹下,使用管理员模式打开cmd,
1.执行初始化
> mysqld --defaults-file="D:\allsoftware\mysql\MySQL5.7\my.ini" --initialize --console
2022-04-22T07:21:47.217141Z 0 [Warning] InnoDB: New log files created, LSN=45790
2022-04-22T07:21:47.541867Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2022-04-22T07:21:47.812687Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: f293b63c-098e-11ed-ba31-e454e8ca5f95.
2022-04-22T07:21:47.837601Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2022-04-22T07:21:48.811314Z 0 [Warning] A deprecated TLS version TLSv1 is enabled. Please use TLSv1.2 or higher.
2022-04-22T07:21:48.812278Z 0 [Warning] A deprecated TLS version TLSv1.1 is enabled. Please use TLSv1.2 or higher.
2022-04-22T07:21:48.813636Z 0 [Warning] CA certificate ca.pem is self signed.
2022-04-22T07:21:49.087872Z 1 [Note] A temporary password is generated for root@localhost: (8(OliKtyT(/
2.注册为服务
> mysqld install
Service successfully installed.
- 检查是否安装成功
Win+R 快捷键打开搜索窗口,输入:services.msc,能够找到 MySQL 则注册成功。
9.接下来将从数据库注册为 windows服务
在主数据库bin文件夹下,使用管理员模式打开cmd,
1.执行初始化。
密码很复杂,在最后一行: (8(OliKtyT(/
> mysqld --defaults-file="D:\allsoftware\mysql\MySQL5.7Slave\my.ini" --initialize --console
2022-04-22T07:21:47.217141Z 0 [Warning] InnoDB: New log files created, LSN=45790
2022-04-22T07:21:47.541867Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2022-04-22T07:21:47.812687Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: f293b63c-098e-11ed-ba31-e454e8ca5f95.
2022-04-22T07:21:47.837601Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2022-04-22T07:21:48.811314Z 0 [Warning] A deprecated TLS version TLSv1 is enabled. Please use TLSv1.2 or higher.
2022-04-22T07:21:48.812278Z 0 [Warning] A deprecated TLS version TLSv1.1 is enabled. Please use TLSv1.2 or higher.
2022-04-22T07:21:48.813636Z 0 [Warning] CA certificate ca.pem is self signed.
2022-04-22T07:21:49.087872Z 1 [Note] A temporary password is generated for root@localhost: (8(OliKtyT(/
2.注册为服务. 将服务命名为 MySQLSlave
> mysqld install MySQLSlave --defaults-file="D:\Asoftware\mysql\MySQL5.7Slave\my.ini"
Service successfully installed.
- 检查是否安装成功
Win+R 快捷键打开搜索窗口,输入:services.msc,能够找到 MySQLSlave 则注册成功。
一切准备就绪,手动点击,启动两个Mysql服务即可
.主数据库设置:允许从数据库从主数据库同步复制数据
数据库不是随随便便睡都能同步复制(睡)的,需要设置.我说你能复制,你才能复制
1.查看本机Ip地址,命令行输入:
ipconfig
2.登录主数据库:mysql -uroot -p123456 -P3306
3.创建一个用户:mysql> grant replication slave on *.* to 'repl001'@'192.168.2.*' identified by 'repl001mysql';
4.刷新数据库权限:mysql> FLUSH PRIVILEGES
5.查看状态:mysql> show master status;
6.到此,完成所有准备工作.
> mysql -uroot -p123456 -P3306
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 5
Server version: 5.7.37-log MySQL Community Server (GPL)
Copyright (c) 2000, 2022, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql> grant replication slave on *.* to 'repl001'@'192.168.2.*' identified by 'repl001mysql';
Query OK, 0 rows affected, 1 warning (0.06 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.04 sec)
mysql> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| mysql-bin.000005 | 154 | | | |
+------------------+----------+--------------+------------------+-------------------+
1 row in set (0.01 sec)
Tips: 登录从数据库: >mysql -uroot -p(8(OliKtyT(/ -P3307
------ 如果文章对你有用,感谢右上角 >>>点赞 | 收藏 <<<
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。