前言

本篇文章主要介绍的是mysql8.0.11的安装。

1、查看是否安装mariadb

rpm -qa | grep mariadb

显示:mariadb-libs-5.5.56-2.el7.x86_64

2、卸载mariadb

rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

3、安装mysql 依赖包

yum install libaio

4、创建mysql 安装目录

mkdir /usr/local/mysql

创建mysql 数据存放目录,执行命令:

mkdir /usr/local/mysql/mysqldb

5、安装目录赋权限

chmod -R 777 /usr/local/mysql/chmod -R 777 /usr/local/mysql/mysqldb/

通过ssh工具上传mysql到任一目录,并cd到该目录下

解压mysql安装包执行命令:

tar -xvf mysql-8.0.11-el7-x86_64.tar -C /usr/local/mysql

如果安装包以gz结尾,解压:mysql-8.0.11-el7-x86_64.tar.gz

tar -xzvf mysql-8.0.11-el7-x86_64.tar.gz -C /usr/local/mysql

6、创建MySQL组

创建mysql组 groupadd mysql

创建MySQL用户但该用户不能登陆(-s /bin/false参数指定mysql用户仅拥有所有权,而没有登录权限)

useradd -r -g mysql -s /bin/false mysql

把刚创建的mysql用户加入到mysql组下:chown -R mysql:mysql ./

7、创建mysql 初始化配置文件

vim /etc/my.cnf

需要把中文注释去掉,文中只作说明用

[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/mysqldb
# 允许最大连接数
max_connections=10000
# 允许连接失败的次数。这是为了防止有人从该主机试图攻击数据库系统
max_connect_errors=10
# 服务端使用的字符集默认为UTF8
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
default_authentication_plugin=mysql_native_password
# 修改sql_mode
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
# 避免长时间未连接而断开
wait_timeout=31536000
interactive_timeout=31536000
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8

8、安装mysql

进入mysql 安装目录下:cd /usr/local/mysql/bin/

初始化安装MySQL,并记住随机密码:./mysqld --initialize --console

9、启动MySQL服务

cd support-files/

./mysql.server start

当执行./mysql.server start命令报找不到pid文件错误时:
在mysql安装目录下重新授权后(走第五步的前两条命令),再次自行启动MySQL命令
./mysql.server start

10、mysql加入系统进程中

cp mysql.server /etc/init.d/mysqld

service mysqld restart

11、修改随机登陆密码

[root@mysql support-files]# cd ../

[root@mysql mysql]# cd bin/

[root@mysql bin]# ./mysql -u root –p

输入第八步生成的初始密码,如果忘记,使用命令下条查看:

grep 'temporary password' /var/log/mysqld.log

登录mysql后修改密码:

mysql> alter user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '你的密码';

12、设置允许远程登陆:

mysql> use mysql

mysql> update user set user.Host='%' where user.User='root';

mysql> flush privileges;

Query OK, 0 rows affected (0.00 sec)

mysql> quit

Bye

重启mysql服务:

service mysqld restart

13、开放端口

开放3306端口

/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT

开放的端口永久保存到防火墙

firewall-cmd --zone=public --add-port=3306/tcp --permanent

拓展命令,与mysql安装无关:
移除开放的端口
firewall-cmd --permanent --zone=public --remove-port=3306/tcp

13、开机自启动设置

创建并编写配置文件

vim /usr/lib/systemd/system/mysql.service

[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target

[Install]
WantedBy=multi-user.target

[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
#Restart=on-failure
#RestartPreventExitStatus=1
#PrivateTmp=false

最后重启mysql服务。

14、注

注:linux版本为centos7时,
所有service mysqld restart 命令替换为systemctl restart mysql.service 其中restart重启,可替换为start启动,stop停止,status查看状态