1.下载mysql8
选择linux通用版本,然后将下载好的压缩包放到 /usr/local 目录下
2.输入指令解压到当前目录
tar -xvf 可以解压tar.xz后缀的压缩文件
tar -zxvf 可以解压tar.gz后缀的压缩文件
tar -xvf mysql-8.0.*******
3.重命名文件为mysql-8.0
用xftp工具直接重命名或者是用mv [参数]
mv mysql-8.0.30-linux-glibc2.12-x86_64 mysql-8.0
4.创建data文件夹 储存文件
在mysql目录下创建data文件夹
cd mysql-8.0
mkdir data
5.创建用户组以及用户
创建mysql组,再创建mysql用户并将mysql用户添加到组中
groupadd mysql
useradd -g mysql mysql
6.授权用户
将mysql文件夹的所有者和所有组都改为mysql
chown -R mysql.mysql /usr/local/mysql-8.0
7.mysql初始化
进入bin目录执行mysqld文件进行初始化
cd bin
初始化
./mysqld --user=mysql --basedir=/usr/local/mysql-8.0 --datadir=/usr/local/mysql-8.0/data/ --initialize
执行初始化命令若出现
# 依赖工具包
yum install -y libaio
# 再次执行,安装mysql执行
./mysqld --user=mysql --basedir=/usr/mysql/mysql-8.0.20 --datadir=/usr/mysql/mysql-8.0.20/data/ --initialize 执行成功
最后一行红色标记是生成的随机密码,记得复制保存
8.编辑my.cnf
vim /etc/my.cnf
一定注释掉这两行代码
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid—
[mysqld]
port=3306
#mysql根目录
basedir=/usr/local/mysql8
#mysql的data目录
datadir=/usr/local/mysql8/data
#socket=/var/lib/mysql/mysql.sock
character-set-server=UTF8MB4
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
[mysqld_safe]
# log-error=/var/log/mariadb/mariadb.log
# pid-file=/var/run/mariadb/mariadb.pid
修改完成之后,输入: ,wq!保存并退出
9.添加mysqld服务
返回mysql-8.0目录下,添加mysqld服务到系统
cd ..
cp -a ./support-files/mysql.server /etc/init.d/mysql
10.授权以及添加服务
chmod +x /etc/init.d/mysql
chkconfig --add mysql
11.启动mysql
service mysql start
12.查看启动状态
service mysql status
13.将mysql命令添加到服务
ln -s /usr/local/mysql-8.0/bin/mysql /usr/bin
14.登录
mysql -uroot -p
将之前生成的 密码输入即可登录
15.修改root密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
然后刷新权限 使密码生效
flush privileges;
16.设置允许远程连接并生效
root表示想要被连接的数据库的用户名
其中“%”表示允许所有机器能访问root用户
update user set host='%' where user='root';
flush privileges;
查看账号host是否为%
use mysql
select user, host from user;
18.开放防火墙3306端口
到这里mysql已经可以本地连接上了,若是想远程连接,还需要开发3306端口
–permanent 代表永久生效,否则重启linux后要再次开启
firewall-cmd --add-port=3306/tcp --permanent
firewall-cmd --reload
查看防火墙端口开放状态
firewall-cmd --list-all
ps:
# 开启防火墙
systemctl start firewalld
# 开放指定端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
# 重启防火墙
firewall-cmd --reload
# 查看端口号
netstat -ntlp
netstat -ntulp |grep 3306
# 开放端口列表
firewall-cmd --list-all
补充:
- 新增用户
CREATE USER 'dev'@'%' IDENTIFIED BY 'password';
- 刷新权限
FLUSH PRIVILEGES;
- 重启
service mysql restart