本文共 2820 字,大约阅读时间需要 9 分钟。
在Linux服务器上安装MySQL之前,需要对服务器进行一些基础设置:
关闭防火墙或开放3306端口
firewall-cmd --state
service firewalld stop
systemctl disable firewalld.service
确认网络命令的正常性
yum -y install net-tools.x86_64
上传文件支持
yum -y install lrzsz
为了保证软件的安全性,建议从MySQL官方网站下载:
下载地址:
https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.23-linux-glibc2.12-x86_64.tar.xz
rm /etc/my.cnf*
yum install libaio
对于Oracle Linux 8及Red Hat 8,需安装ncurses-compat-libs:
yum install ncurses-compat-libs
解压下载包:
tar -xvJf mysql-8.0.23-linux-glibc2.12-x86_64.tar.xz
创建用户和组:
groupadd mysqluseradd -r -g mysql -s /bin/false mysql
将解压包复制到/usr/local
:
cp mysql-8.0.23-linux-glibc2.12-x86_64.tar.xz /usr/local/
解压并重命名:
tar -xvJf /usr/local/mysql-8.0.23-linux-glibc2.12-x86_64.tar.xzmv mysql-8.0.23-linux-glibc2.12-x86_64 mysql
创建数据目录并设置权限:
mkdir mysql-fileschown mysql:mysql mysql-fileschmod 750 mysql-files
初始化MySQL:
bin/mysqld --initialize --user=mysql
生成SSL和RSA文件:
bin/mysql_ssl_rsa_setup
启动MySQL:
bin/mysqld_safe --user=mysql &
登陆并重置密码:
bin/mysql -uroot -p
修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
设置开机启动:
cp support-files/mysql.server /etc/init.d/mysql.serverchmod +x /etc/init.d/mysql.serverchkconfig --add mysql.serverchkconfig --list
重启服务器并验证:
reboot
检查启动状态:
ps -ef | grep mysql
硬件需求:
网络配置
node1
, node2
, node3
node4
MySQL Shell(即MySQL CLI)是管理MySQL集群的重要工具,支持JavaScript、Python、SQL交互模式。
下载地址:
https://dev.mysql.com/get/Downloads/MySQL-Shell/mysql-shell-8.0.23-linux-glibc2.12-x86-64bit.tar.gz
tar -zxvf mysql-shell-8.0.23-linux-glibc2.12-x86-64bit.tar.gzmv mysql-shell-8.0.23-linux-glibc2.12-x86-64bit mysql-shell
/usr/local/mysql-shell/bin/mysqlsh
export PATH=/usr/local/mysql-shell/bin:$PATHsource /etc/profile
mysqlshshell.connect('root@node1:3306')
mysqlsh -h node1 -P3306 -uroot -p
\js
\py
\sql
\q\quit
进入SQL交互模式后,使用SQL命令操作数据库。
检查配置
dba.checkInstanceConfiguration()
如果出现权限不足错误,授予root用户管理权限:
GRANT ALL ON *.* TO 'root'@'%' WITH GRANT OPTION;
创建集群
var cluster = dba.createCluster('mycluster')
添加节点:
cluster.addInstance("root@node2:3306")cluster.addInstance("root@node3:3306")
切换集群模式
cluster.switchToSinglePrimaryMode("root@node1:3306")
cluster.switchToMultiPrimaryMode()
tar -Jxvf mysql-router-8.0.23-linux-glibc2.12-x86_64.tar.xzmv mysql-router-8.0.23-linux-glibc2.12-x86_64 mysql-router
mysqlrouter --bootstrap root@node1:3306 --user=root
查看路由信息:
cluster.listRouters()
通过以上步骤,可以实现一个高可用性MySQL集群,适用于生产环境。
转载地址:http://qndfk.baihongyu.com/