前言
本篇文章主要介绍的是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查看状态