本专栏将通过MyCat从零搭建一个数据库集群,包括读写分离、多主多从、分库分表等
搭建MySQL环境
在搭建MyCat前,先搭建一个MySQL环境,根据下面的步骤进行即可,搭建完成后会在下一篇搭建一个主从复制的MySQL架构
MySQL :: Download MySQL Community Server (Archived Versions)
选择对应的版本和系统下载,本文演示的MySQL版本为5.7.22,操作系统Cent OS7

解压
运行下面命令解压tar包
tar -xvf xxxx.tar
解压后,将解压出来的tar.gz压缩包再次解压
tar -zxvf xxxx.tar.gz
为了方便管理,将解压的mysql目录重命名
mv /usr/local/mysql-5.7.22-linux-glibc2.12-x86_64 /usr/local/mysql
建立数据目录
mkdir /usr/local/mysql/data
建立用户组和用户
groupadd mysql
useradd mysql -g mysql
# 将/usr/local/mysql的所有者及所属组改为mysql
chown -R mysql.mysql /usr/local/mysql
安装
/usr/local/mysql/bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data
编辑/etc/my.cnf文件
[mysqld]
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
socket=/tmp/mysql.sock
character-set-server=utf8
# 跳过密码验证
skip-grant-tables
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

注:
如果提示/var/log/mariadb/mariadb.log不存在,则建立mariadb.log文件即可
将mysql加入
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
开启自启
chkconfig mysql on
启动MySQL
service mysql start
启动时通过sock与mysql建立通信,如果提示/tmp/mysql.sock不存在,则需要单独建立
如果启动时出现
the server quit without updating PID file /usr/local/mysql/data/mycentos01.pid
则可能是权限不足或其他原因
权限不足通过命令赋予权限
chmod 777 /usr/local/mysql/data
或者通过xshell修改权限


其他原因可以在/var/log/mariadb/mariadb.log日志中查看
例如我在安装的时候,权限已经授予了还是提示上述的错误,在日志中,看到

说明sock文件已经占用了,因为我上次停止mysql时未完全停止,一般在停止后sock文件会被清掉,查看了我的/tmp/目录,发现mysql.sock还存在,于是将它删除,重新运行mysql,启动成功

配置环境变量
编辑profile文件
vi /etc/profile
加入下面两行配置
export MYSQL_HOME=/usr/local/mysql/bin
export PATH=$PATH:$MYSQL_HOME

保存退出后,重新加载profile文件
source /etc/profile
登录MySQL
mysql -u root -p
由于我们上面已经取消密码验证,这里回车直接登录
进入数据库
use mysql;
修改root的密码,改为123456
update user set authentication_string=password('123456') where user='root';
刷新设置
flush privileges;

把刚刚/etc/my.cnf中跳过密码的配置去掉
[mysqld]
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
socket=/tmp/mysql.sock
character-set-server=utf8
# 去掉跳过密码验证
# skip-grant-tables
symbolic-links=0
退出重新用刚刚设置的密码登录

登录后重新修改密码,否则操作不了数据库
alter user 'root'@'localhost' identified by '123456'
远程连接
进入数据库
use mysql;
修改连接的host为%,表示允许任意主机连接
update user set host='%' where user='root';
刷新设置
flush privileges;

查看ip地址
ip addr

关闭防火墙
# 查看防火墙状态
systemctl status firewalld
# 关闭防火墙
systemctl stop firewalld
连接数据库

连接成功

本文详细指导如何在CentOS上从头开始搭建MySQL数据库集群,包括下载、解压、配置主从复制、分库分表,以及安全设置和远程连接等内容。
 - MySQL环境搭建&spm=1001.2101.3001.5002&articleId=138154983&d=1&t=3&u=1a759b1a56424796a9e080766cd7c67e)
4895

被折叠的 条评论
为什么被折叠?



