MyCat2实践(1) - MySQL环境搭建

本文详细指导如何在CentOS上从头开始搭建MySQL数据库集群,包括下载、解压、配置主从复制、分库分表,以及安全设置和远程连接等内容。

本专栏将通过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

连接数据库

连接成功

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值