目录
1、准备安装包:
2、上传安装包到服务器
3、分发安装包给其他两台服务器
4、安装单机版MySQL
1、解压安装包(我这里直接对三个服务器一起进行哈,后续要搭建mysql的主从)
(1)卸载系统中自带的数据库
(2) 解压安装包
(3) mysql环境变量配置
(4)创建mysql用户组
(5)创建数据目录
(6)创建mysql数据库配置文件
(7)初始化数据库
(8)启动数据库
(9)登录mysql并修改密码
(10)远程客户端连接mysql
5、集群版Mysql
(1)架构图
编辑
(2) 主节点配置 (192.168.10.11)
(3)从节点1配置
(4)从节点2配置 和节点1 一致 的代码哈
(5) 解锁 主节点的写数据权限
(6)在主节点创建数据库 数据表并写入数据
经过博主的努力!终于是把最基础的东西敲完了,虚拟机已经搭建好了。
没有搭建虚拟机的宝子看这里 :Linux Centos7从零到一的安装保姆级教程(网络、SSH免密、克隆) 博主带你玩转虚拟机及大数据!-CSDN博客
不熟悉liinux命令的宝子看这里:
从零开始的大数据之路 linux基础篇(一次学会永不回头)(1)_大数据中卸载和解压命令-CSDN博客
本次讲解mysql的搭建,因为mysql5.7的功能已经不及现在8.0 版本的性能,所以我这里就以搭建8.0 的mysql来为大家详细讲解 linux中mysql 8.0 无坑版本的搭建!
1、准备安装包:
没有安装包的看这里:
大数据之路 安装包分享 你想要的我都有系列 [持续更新分享]-CSDN博客
2、上传安装包到服务器
3、分发安装包给其他两台服务器
# 因为我刚刚是把文件上传到master节点 如果你不是上传到master需要进行替换的哦 scp -r install_package/ root@slave1:$PWD scp -r install_package/ root@slave2:$PWD4、安装单机版MySQL
1、解压安装包(我这里直接对三个服务器一起进行哈,后续要搭建mysql的主从)
(1)卸载系统中自带的数据库
#查看系统中有没有 maria rpm -qa|grep mariadb #卸载maria 这里填写自己的版本哈 rpm -e --nodeps mariadb-libs-5.5.64-1.el7.x86_64(2) 解压安装包
mkdir /home/softwares #解压 (要在压缩包的文件目录哈) tar -Jxvf mysql-8.0.35-linux-glibc2.17-x86_64.tar.xz -C /home/softwares/这样就解压完了!
(3) mysql环境变量配置
cd /home/softwares mv mysql-8.0.35-linux-glibc2.17-x86_64/ mysql # 编辑环境变量 vim /etc/profile #添加mysql的环境变量 export PATH=$PATH:/home/softwares/mysql/bin #环境变量生效 source /etc/profile(4)创建mysql用户组
# 创建一个用户组:mysql groupadd mysql # 创建一个系统用户:mysql,指定用户组为mysql useradd -r -g mysql mysql(5)创建数据目录
#创建数据目录 mkdir -p /home/data/mysql_data/data #创建日志目录 mkdir -p /home/data/mysql_data/logs # 更改属主和数组 chown -R mysql:mysql /home/data/mysql_data/ # 更改模式 chmod -R 755 /home/data/mysql_data(6)创建mysql数据库配置文件
# 按照自己的实际路径来哈 mkdir /home/softwares/mysql/conf vim my.cnf配置文件如下,如果内存大可以调大参数哈!
[mysql] default-character-set = utf8mb4 [client] port = 3306 socket = /tmp/mysql.sock [mysqld] innodb_strict_mode = 0 port = 3306 server-id = 1 user = mysql socket = /tmp/mysql.sock basedir = /home/softwares/mysql datadir = /home/data/mysql_data/data log-bin = /home/data/mysql_data/mysql-bin innodb_data_home_dir = /home/data/mysql_data/data innodb_log_group_home_dir = /home/data/mysql_data/logs log-error = /home/data/mysql_data/logs/mysql.log pid-file = /home/data/mysql_data/data/mysql.pid character-set-server = utf8mb4 lower_case_table_names = 1 autocommit = 1 default-authentication-plugin = mysql_native_password skip-external-locking # ----------- 降为原始配置的 1/12 ----------- key_buffer_size = 42M max_allowed_packet = 42M table_open_cache = 85 sort_buffer_size = 3M net_buffer_length = 66K read_buffer_size = 3M read_rnd_buffer_size = 426K myisam_sort_buffer_size = 5M thread_cache_size = 106 # query_cache_size = 106M tmp_table_size = 42M explicit_defaults_for_timestamp = true max_connections = 41 max_connect_errors = 100 open_files_limit = 65535 binlog_format = ROW log-bin = master-a-bin binlog_expire_logs_seconds = 864000 default_storage_engine = InnoDB innodb_data_file_path = ibdata1:10M:autoextend innodb_buffer_pool_size = 674M innodb_log_file_size = 85M innodb_log_buffer_size = 6M innodb_flush_log_at_trx_commit = 1 innodb_lock_wait_timeout = 60 transaction-isolation = READ-COMMITTED [mysqldump] quick max_allowed_packet = 42M [myisamchk] key_buffer_size = 5M sort_buffer_size = 341K read_buffer = 170K write_buffer = 170K [mysqlhotcopy] interactive-timeout说明:
(7)初始化数据库
# 填写自己的路径哈 mysqld --defaults-file=/home/softwares/mysql/conf/my.cnf --basedir=/home/softwares/mysql --datadir=/home/data/mysql_data/data --user=mysql --initialize-insecure为了防止各位宝子弄错哈,博主把每个参数简单的解释一下
(8)启动数据库
# 完整命令 /home/softwares/mysql/bin/mysqld_safe --defaults-file=/data/softwares/mysql8/my.cnf & # 添加PATH变量后的命令(省略bin目录的路径) mysqld_safe --defaults-file=/home/softwares/mysql/conf/my.cnf & # 查看mysql的启动状态 ps -ef | grep mysqlmysql 的命令都在里面了! 记住这个路径,当然添加了环境变量可以直接使用下面那个命令启动,随意目录都可以的哈!
查看mysql的启动情况
(9)登录mysql并修改密码
# 免密登录mysql mysql -u root --skip-password # 修改密码 ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; # 刷新权限 FLUSH PRIVILEGES; # 这里是给远程权限的哈 下面的 'mysql>' 不要粘贴了 hhh mysql> use mysql mysql> update user set user.Host='%'where user.User='root'; mysql> flush privileges; mysql> quit # 这个是没开防火墙开放端口的,当然咱们不需要这个,所以下面这些不需要执行,但是我还是留下这些命令哈 # 但是如果是生产环境 还是请大家仅开放端口哦 sudo firewall-cmd --zone=public --add-port=3306/tcp --permanent sudo firewall-cmd --reload至此单节点的mysql 8 到这里基本结束了哈! 博主一次成功,各位宝子遇到困难了吗?
评论区留言,大家相互交流!
(10)远程客户端连接mysql
工具有很多的 如 dbeave 、 navicat、datagrip 等,自行选择 如果需要工具,博主找找自己的安装包给你还是可以的,不一定找的到,哈哈哈!下面就讲解一下怎么远程连接我们的数据库 ,方便后续写代码测试以及搭建mysql集群!
新建连接
这是 DG连接工具
5、集群版Mysql
(1)架构图
(2) 主节点配置 (192.168.10.11)
# 创建一个用于同步数据的用户 create user 'slave_user'@'%' identified by 'All_123456'; # 给用户赋权 grant all on *.* to 'slave_user'@'%'; # 刷新锁定表 防止主节点写入数据 FLUSH TABLES WITH READ LOCK; # 查看主节点状态 show master status;(3)从节点1配置
-- 停止同步 stop REPLICA; -- 重设同步参数 RESET REPLICA ALL; # 修改同步参数 按照自己实际情况来 CHANGE REPLICATION SOURCE TO SOURCE_HOST='192.168.10.11', SOURCE_USER='slave_user', SOURCE_PASSWORD='All_123456', SOURCE_LOG_FILE='master-a-bin.000002', SOURCE_LOG_POS=1860; # 开启同步 START REPLICA; # 查看同步状态 SHOW REPLICA STATUS; SELECT * FROM performance_schema.replication_applier_status_by_worker(4)从节点2配置 和节点1 一致 的代码哈
-- 停止同步 stop REPLICA; -- 重设同步参数 RESET REPLICA ALL; # 修改同步参数 按照自己实际情况来 CHANGE REPLICATION SOURCE TO SOURCE_HOST='192.168.10.11', SOURCE_USER='slave_user', SOURCE_PASSWORD='All_123456', SOURCE_LOG_FILE='master-a-bin.000002', SOURCE_LOG_POS=1860; # 开启同步 START REPLICA; # 查看同步状态 SHOW REPLICA STATUS; SELECT * FROM performance_schema.replication_applier_status_by_worker(5) 解锁 主节点的写数据权限
# 这个在主节点执行哈 UNLOCK TABLES;show processlist这里已经可以看到从节点 1 从节点二已经在接收主节点的binlog日志了,至此 mysql主从已经大功告成! 恭喜各位宝子又喜提新的技能了哈!!!
(6)在主节点创建数据库 数据表并写入数据
注意,这里我提供测试代码,在主节点去执行,从节点会自动同步数据的哈! 如果成功了说明宝子你很棒!!
-- 创建数据库 CREATE DATABASE IF NOT EXISTS test_db CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; -- 使用该数据库 USE test_db; -- 创建表 CREATE TABLE IF NOT EXISTS users ( id INT AUTO_INCREMENT PRIMARY KEY, username VARCHAR(50) NOT NULL, email VARCHAR(100), created_at DATETIME DEFAULT CURRENT_TIMESTAMP ); -- 写入数据 INSERT INTO users (username, email) VALUES ('alice', 'alice@example.com'), ('bob', 'bob@example.com'), ('charlie', 'charlie@example.com');主节点写入数据
从节点1查询刚刚主节点写入的数据,完全正确!!!
从节点2查询刚刚主节点写入的数据,完全正确!!!
至此Mysql的单机版和集群版都已经被博主无坑讲解完了哈,各位宝子还是去点赞收藏吧!!
关注博主,博主只给大家带来干货,在这个知识付费的年代,博主花时间和精力免费分享无坑干货给大家,还是希望大家支持我。
然后我们期待后续的内容吧!