一、安装Mysql服务环境准备
- 检查服务器是否已经安装了MySQL(一般情况下centos会自带MySQL)执行:
rpm -qa |grep mysql
rpm -qa | grep mariadb- 卸载MySQL, 对第1步查询出来的MySQL分别执行:
yum remove mysql-${version}
yum remove mysql-libs-${version}
rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps # 大部分情况会存在依赖,使用 --nodeps 忽略检查MySQL是否卸载完成,如果没有任何结果表明MySQL已经卸载完
rpm -qa |grep mysql查询MySQL对应的目录或文件
whereis mysql删除第4步查询出来的目录或文件(如果第4步没有结果,那么此步不用执行)
检查MySQL用户组和用户是否存在
cat /etc/group | grep mysql
cat /etc/passwd |grep mysql创建MySQL用户组和用户(如果第6步没有结果,那么执行此步)
groupadd mysql -- 创建mysql组
useradd -r -g mysql mysql --创建mysql用户属于mysql组从官方网站(https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz)下载MySQL包mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz并放到 /opt/ 目录下
二、 搭建数据库
- 进入/opt 执行:
cd /opt
tar -xzvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz- 将解压后的文件夹改名
tar -xzvf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.28-linux-glibc2.12-x86_64 mysql- 创建mysql data目录
cd /opt/mysql
mkdir data- 更改MySQL所有的目录、文件所属的用户组、用户、访问权限
cd /opt/
chown -R mysql:mysql /opt/mysql --修改目录所属用户
chmod -R 755 /opt --给目赋权- 安装Mysql(一定要记住安装日志文末的密码)
cd /opt/mysql/bin
./mysqld --initialize --user=mysql --datadir=/opt/mysql/data --basedir=/opt/mysql- 添加配置文件 my.cnf
vi my.cnf[mysqld] basedir=/opt/mysql # mysql data目录 datadir=/opt/mysql/data # 使用mysql -u root-p 登录socket配置 socket=/opt/mysql/mysql.sock port=3306 # 模式配置 sql_mode=ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION # Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0 max_connections=400 innodb_file_per_table=1 lower_case_table_names=1 # 字符集配置 character-set-server=utf8 ################################启用二进制日志 主从配置开始######################## # 启用二进制日志 从库不需要配置 log-bin=mysql-bin-master # 本机数据库ID 标识 ,主从情况ID 要唯一 server-id=1 # 可以被从服务器复制的库, 二进制需要同步的数据库名 从库不需要配置 # 如果有多个数据库就每行一个,如果不指定的话默认就是所有数据库. # binlog-do-db=test #不可以被从服务器复制的库 从库不需要配置 binlog-ignore-db=mysql ################################启用二进制日志 主从配置结束######################## [mysqld_safe] log-error=/var/log/mysql/mysql.log pid-file=/var/run/mysql/mysql.pid [client] port=3306 #使用mysql -u root-p 登录socket配置 socket=/opt/mysql/data/mysql.sock #字符集配置 default-character-set=utf8 [mysql] default-character-set=utf8
- 启动Mysql
cd /opt/mysql/support-files
./mysql.server start- 检查MySQL是否启动成功
ps -ef|grep mysql- 客户端连接,如果无法使用mysql -u root -p命令,则需要添加映射
ln -s /opt/mysql/bin/mysql /usr/bin 映射
mysql -u root -p
修改账号密码 ALTER USER USER() IDENTIFIED BY '123456';修改后重启mysqld服务
/opt/mysql/support-files/mysql.server stop
/opt/mysql/support-files/mysql.server start
tail -f /var/log/messages
三、主从配置:
主库配置:
- 授权主从同步slave用户权限,先登录
mysql -u root -p
grant replication slave on *.* to slave@ip identified by "123456"; #ip地址为从库的IP- #查看状态信息
show master status;- 查看主服务器主从同步状态:
show processlist\G从库配置:
- 从库my.cnf 维护
/etc/my.cnf 文件中添加配置server-id=2 ,并重启服务- 登录从库
mysql -u root -p- 同步主库设置
change master to master_host='10.xx.xx.xx',master_user='slave',master_password='123456'; #IP地址为主服务器地址- 启动从库配置
start slave; #启动slave
show slave status\G; #查看状态可以看到出现了两个为 YES,则主从配置成功了
四、 设置mysql服务开机启动
- 将服务文件拷贝到init.d下,并重命名为mysql
cp /opt/mysql/support-files/mysql.server /etc/init.d/mysqld- 赋予可执行权限
chmod +x /etc/init.d/mysqld- 添加服务
chkconfig --add mysqld- 显示服务列表
chkconfig --list