一、准备
1.首先清理环境,看是否有默认数据库
rpm -qa | grep mysql
如果有的话删除
yum remove mysql-libs-5.1.73-8.el6_8.x86_64
2.查看是否有残余文件,如果有的话清理掉
[root@wzthdev oneinstack]# find / -name mysql
/var/spool/mail/mysql
/data/mysql2019050916/mysql
/opt/module/mysql-8.0.16/bin/mysql
/opt/module/mysql-8.0.16/include/mysql
[root@wzthdev oneinstack]# rm -rf /var/spool/mail/mysql /data/mysql2019050916/mysql
[root@wzthdev oneinstack]#
3.检查端口3306是否占用
ps -ef | grep mysql
二、下载
1.安装包方式
下载地址:https://dev.mysql.com/downloads/mysql/
如果你的系统是32位选择第一个,64位选择第二个
三、解压安装
1.解压文件
官网下载后的后缀为xz,需要先将xz转换为tar格式
xz -d mysql-8.0.16-linux-glibc2.12-x86_64.tar.xz
然后再解压
tar -xvf mysql-8.0.16-linux-glibc2.12-x86_64.tar
2.移动到安装目标地并重命名
mv mysql-8.0.16-linux-glibc2.12-x86_64 ../module/mysql-8.0.16
3.在MySQL根目录下新建一个文件夹data,用于存放数据
mkdir data
4.创建 mysql 用户组和 mysql 用户
groupadd mysql
useradd -g mysql mysql
5.改变 mysql 目录权限
chown -R mysql.mysql mysql-8.0.16/
或者
chown -R mysql .
chgrp -R mysql .
6.初始化数据库
./bin/mysqld --initialize --user=mysql --basedir=/opt/module/mysql-8.0.16/ --datadir=/opt/module/mysql-8.0.16/data/
如果报错
说明缺少组件,运行命令安装即可
yum install libaio*
记住密码
7.启动服务
修改配置文件/etc/my.cnf
[mysqld]
datadir=/opt/module/mysql-8.0.16/data/
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# 最大连接数
max_connections = 2000
# 超时时间3分钟
wait_timeout=1800
interactive_timeout=1800
# 忽略解析,结束DNS反查
skip-name-resolve
skip-external-locking
# 设置默认时区
default-time-zone = '+08:00'
# SQL模式,去掉所有限制,防止GROUP BY 等无法执行
sql_mode =
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysql/mysqld.pid
给/var/run/mysql赋予权限
mkdir /var/run/mysql/
chown -R mysql.mysql /var/run/mysql/
启动
./bin/mysqld_safe --user=mysql &
查看mysql进程,是否启动
ps -ef | grep mysql
报错1:可能是my.cnf没有修改
2019-05-30T09:36:10.501021Z mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.
报错2:/var/run/mysql没有给权限
[root@wzthdev mysql-8.0.16]# 2019-05-30T09:57:05.855306Z mysqld_safe Logging to '/var/log/mysqld.log'.
2019-05-30T09:57:05.882430Z mysqld_safe Starting mysqld daemon with databases from /opt/module/mysql-8.0.16/data
2019-05-30T09:57:08.442948Z mysqld_safe mysqld from pid file /var/run/mysql/mysqld.pid ended
8.修改密码及远程连接
./bin/mysql -u root -p
#使用初始化之后给的密码登录
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; //修改密码
use mysql;
update user set host = '%' where user = 'root'; //允许远程访问
ALTER USER 'root' IDENTIFIED WITH mysql_native_password BY '123456'; //更新一下用户的密码
ALTER USER 'root' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; //修改加密规则
FLUSH PRIVILEGES; #刷新权限
SELECT user,host,plugin,authentication_string FROM user; #验证
9.MySQL加入到系统服务中,并设置开机启动
cp /opt/module/mysql-8.0.16/support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld // 赋予可执行权限
chkconfig --add mysqld // 添加服务
chkconfig --list //显示服务列表
如果看到mysql的服务,并且3,4,5都是on的话则成功,如果是off,则键入
chkconfig --level 345 mysqld on
10.添加环境变量
vim ~/.bash_profile
PATH=/opt/module/mysql-8.0.16/bin:/opt/module/mysql-8.0.16/lib:$PATH
source ~/.bash_profile
11.检查mysql运行状态
service mysqld status # 查看运行状态
service mysqld start # 启动
service mysqld stop # 停止
service mysqld restart # 重新启动
如果报错
/etc/init.d/mysqld: line 239: my_print_defaults: command not found
说明/etc/my.cnf文件中 [mysqld] 缺少 basedir 或 datadir 配置,加上即可
12.新增用户
CREATE USER 'db_user'@'%' IDENTIFIED BY '123456'; # 创建用户
update user set host = '%' where user = 'root'; //允许远程访问
ALTER USER 'root' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER; //修改加密规则
ALTER USER 'root' IDENTIFIED WITH mysql_native_password BY '123456'; //更新一下用户的密码
GRANT ALL PRIVILEGES ON *.* TO 'db_user'@'%' WITH GRANT OPTION; # 赋予所有权限
FLUSH PRIVILEGES; #刷新权限