1.在 /usr/local下 创建mysql文件夹
mkdir mysql
2.切换到mysql文件夹下
cd mysql
3.下载mysql
wget https://cdn.mysql.com/archives/mysql-8.0/mysql-8.0.18-el7-x86_64.tar.gz
ps: 此处根据自己需要的mysql版本进行输入版本号
也可以直接在官方下载最新版本官方下载选择linux系统对应的mysql版本
4.解压mysql
tar zxvf mysql-8.0.18-el7-x86_64.tar.gz
5.重命名文件夹
mv mysql-8.0.18-el7-x86_64 ../mysql8
ps:将mysql8移动到/usr/local/下,与最初的mysql统计目录,此目录大家可根据需要自行调整,保证前后配置的目录一致即可
5.创建data文件夹 存储文件
cd mysql8
mkdir data
6.创建用户组以及用户和密码
groupadd mysql
useradd -g mysql mysql
7.授权用户
chown -R otwb.otwb /usr/local/mysql8
8.切换到/usr/local/mysql8/bin目录下
cd /usr/local/mysql8/bin
9.初始化基础信息
./mysqld --user=mysql --basedir=/usr/local/mysql8/ --datadir=/usr/local/mysql8/data/ --lower-case-table-names=1 --initialize
--lower-case-table-names=1 表示表名不区分大小写
#如果初始化中报错lc-messages-dir,则需要提前在/etc/my.cnf文件中添加以下配置
lc-messages=en_US
lc-messages-dir=/usr/local/mysql8/share/english/
然后再执行初始化指令:执行之前进入data目录,清空里面的文件数据
./mysqld --user=mysql --basedir=/usr/local/mysql8/ --datadir=/usr/local/mysql8/data/ --lower-case-table-names=1 --initialize
注意:MYSQL8以后,修改配置是无效的,如果缺少配置项,只能删除data目录,然后重新初始化
得到临时密码
10.编辑my.cnf文件
vi /etc/my.cnf
ps:my.cnf可能不存在,直接新增即可,注意自己的目录
basedir=/usr/local/mysql8/
datadir=/usr/local/mysql8/data/
socket=/tmp/mysql.sock
character-set-server=UTF8MB4
lower_case_table_names=1
#如果初始化中报错lc-messages-dir,则需要添加以下配置
lc-messages=en_US
lc-messages-dir=/usr/local/mysql8/share/english/
11.添加mysqld服务到系统(目录还在mysql8下)
cp -a ./support-files/mysql.server /etc/init.d/mysql
12.授权以及添加服务
chmod +x /etc/init.d/mysql
chkconfig --add mysql
13.启动mysql
service mysql start
14.查看启动状态
service mysql status
15.将mysql命令添加到服务
ln -s /usr/local/mysql8/bin/mysql /usr/bin
16.登录mysql -uroot -p 密码使用之前随机生成的密码
17.修改root密码其中123456是新的密码自己设置
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'anji@051$86jqT';
18.执行 使密码生效
flush privileges;
19.选择mysql数据库
use mysql;
20.修改远程连接并生效
update user set host='%' where user='root';
flush privileges;
21.查看端口
show global variables like 'port';
MySQL8创建新用户及授权方式
create user 'test'@'%' identified by '123456';
grant all privileges on *.* to 'test'@'%';
flush privileges;