文章目录
1、环境准备
Centos6.0及以上版本(64bit)
2、安装包下载
首先登录官网,下载二进制版本,步骤如下:
- 进入www.mysql .com 。
- 单击顶部菜单的downloads。
- 单击MySQL Community (GPL) Downloads »。
- 单击MySQL Community Server。
- 如果要下载以前的版本,单击Looking for previous GA versions
- 选择相应的平台、版本,比如选择64位Linux平台下的MySQL二进制包:mysql-5.7.40-linux-glibc2.12-x86_64.tar.gz,如下图。
附MySQL所有版本的下载地址:https://downloads.mysql.com/archives/community/
3、卸载操作系统自带MySQL
Centos6.8一般默认预先安装了MySQL5.1,需要进行卸载,步骤如下:
# 第一步,执行命令查看已经安装的mysql
rpm -qa|grep -i mysql
rpm -e --nodeps (mysql版本号,就是上面检查到的版本号)
# 第二步,执行命令卸载所有mysql软件包
yum -y remove mysql*
# 第三步,执行命令查找mysql的相关安装目录(安装包和安装目录是分开卸载的)
find / -name mysql
/etc/selinux/targeted/active/modules/100/mysql
/usr/lib64/mysql
/usr/share/mysql
# 第四步,通过rm -rf xxx命令将上述查询到的目录依次删除
rm -rf /etc/selinux/targeted/active/modules/100/mysql
rm -rf /usr/lib64/mysql
rm -rf /usr/share/mysql
# 第五步,删除mysql配置文件
rm -rf /etc/my.cnf
# 第六步,删除mysql默认密码
rm -rf /root/.mysql_history
rm -rf /root/mysql_secret
# 至此已彻底卸载mysql
4、安装
#第一步 建立/opt/software目录
mkdir /opt/software
# 第二步,上传压缩包到/opt/software目录
# 第三步,进入/usr/local目录,将压缩包解压在这里并更改文件夹名为mysql
cd /usr/local
tar zxvf /opt/software/mysql-5.7.40-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.40-linux-glibc2.12-x86_64 mysql
# 第四步 创建一个mysql用户 -s表示这个用户不登陆,-M 没有家目录
useradd mysql -s /sbin/nologin -M
mkdir -p /home/mysql/data # 数据目录
mkdir -p /home/mysql/socket # 用于存放mysql.sock
chown -R mysql:mysql /home/mysql/data/
chown -R mysql:mysql /home/mysql/socket/
# 第五步 .修改mysql目录属主和属组
chown -R mysql /usr/local/mysql
chgrp -R mysql /usr/local/mysql
# 第六步 安装依赖包
yum -y install libaio
5、编辑配置文件/etc/my.cnf
编辑配置文件/etc/my.cnf,内容如下:
[mysql]
default-character-set=utf8
[mysqld]
port = 13506
basedir=/usr/local/mysql/
datadir=/home/mysql/data/
max_connections=200
character-set-server=utf8
default-storage-engine=INNODB
log-bin=mysql-bin
binlog_format=mixed
server-id=161
slow_query_log=1
long_query_time=0.5
secure-file-priv=""
relay_log = /home/mysql/data/mysql-relay-bin
log_slave_updates = 1
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
socket=/home/mysql/socket/mysql.sock
innodb_undo_directory=/home/mysql/data/
innodb_undo_logs=1024
innodb_undo_tablespaces=4
innodb_undo_log_truncate=1
show_compatibility_56=1
[client]
default-character-set = utf8
user=root
password='000000'
socket=/home/mysql/socket/mysql.sock
6、将mysql配置为系统服务,并设置开机自启动
- 把mysqld添加至systemctl进行管理
# 复制过去后,sytemctl会自动识别的
cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld.server
- 添加执行权限
chmod +x /etc/rc.d/init.d/mysqld.server
- 把mysql的bin目录添加至环境变量
# mysql客户端要连接时候方便
echo "PATH=/usr/local/mysql/bin/:$PATH" >> /etc/profile
# 让修改的文件不重启生效
source /etc/profile
- 把mysqld.server添加至chkconfig下,并设置开启自启动
chkconfig --add mysqld.server
chkconfig mysqld.server on
7、初始化数据库,修改root密码,对root授权
- 初始化数据库,打开SSL
mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/home/mysql/data/
mysql_ssl_rsa_setup
- 启动数据库
# 需要跳过授权表,启动数据库,因为mysql默认会设置一个随机密码
/etc/init.d/mysqld.server start --skip-grant-tables
- 修改连接数据库的root密码
#5.7版本中mysql.user表下authentication_string字段存储的用户登陆密码
mysql -uroot # 直接可进入数据库
update mysql.user set authentication_string=password('000000') where user='root' and host='localhost';
flush privileges;
- 停止当前的MySQL,正常启动即可
/etc/init.d/mysqld.server stop
/etc/init.d/mysqld.server star
- 授权root用户可以从任何主机连接到MySQL服务器
mysql> ALTER USER USER() IDENTIFIED BY 'XXXXXX';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '000000' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
8、总结
- MySQL5.7在Centos6上的安装主要分为下载、卸载操作系统自带版本、创建用户和目录、安装依赖包、解压缩安装包、配置my.cnf、初始化数据库、修改root密码,如果需要可以设置MySQL为系统服务并自启动。
- 一些其他MySQL的分支,提供了更高的性能和更多的特性,如Percona Server、MariaDB等,它们的二进制版本安装类似于官方版本,读者可参考对应分支的安装文档进行部署安装。注意,安装前一定要仔细阅读它们的安装文档。