1.下载并解压
# 下载
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11-linux-glibc2.12-i686.tar.gz
# 解压
tar -zxvf 压缩包 -C 解压到的目录
# 移到/usr/local/名称
mv 解压出来的文件夹 /usr/local/mysql
2.进入解压的目录
# 创建一个文件夹data,用于存放数据
mkdir /usr/local/mysql/data
# 创建 mysql 用户组和 mysql 用户
groupadd mysql
useradd -g mysql mysql
# 改变 mysql 目录权限
chown -R mysql.mysql /usr/local/mysql/
3.初始化数据库
# 创建mysql_install_db安装文件
mkdir /usr/local/mysql/mysql_install_db
chmod 777 /usr/local/mysql/mysql_install_db
# 初始化(这里需要记录好自己的临时密码)
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
# (1).在docker初始化后可能会报错信息
yum install lib* -y
yum install numactl -y
yum install libtinfo* -y
# mysql配置
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
4.修改(没有就创建)my.cnf文件(vi /etc/my.cnf)
注意:这里需要把mariadb的配置信息清除,不然会冲突启动不了mysql
# 配置文件信息
[mysqld]
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
socket = /usr/local/mysql/mysql.sock
character-set-server=utf8
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[client]
socket = /usr/local/mysql/mysql.sock
default-character-set=utf8
5.建立MySQL服务
# 在mysql目录下复制
cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# 添加到系统服务
chkconfig --add mysqld
# 检查服务是否生效
chkconfig --list mysqld
6.配置全局环境变量(vi /etc/profile)
# /usr/local/mysql/bin是mysql目录下的
export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib
7.启动MySQL服务
# 设置环境变量立即生效
source /etc/profile
# 启动MySQL服务
service mysqld start
8.初始化信息
# 创建用户
CREATE USER '用户名'@'%' IDENTIFIED BY '密码';
# 授权
GRANT ALL ON 数据库名 TO '用户名'@'%';
# 切换到mysql数据库
use mysql;
# 修改密码为123456
alter user 'root'@'localhost' identified by '123456';
# 允许所有人访问(根据自己需要设置)
update user set host = '%' where user ='root';
# 刷新权限
FLUSH PRIVILEGES;
9.忘记密码时操作
# 在/etc/my.cnf文件中添加
skip-grant-tables
# 关闭和重启数据库服务
service mysqld stop
service mysqld start
# 清空缓存
flush privileges;
#先创建一个用户
create user 'hong'@'%' identified by '123123';
#再进行授权
grant all privileges on *.* to 'hong'@'%' with grant option;
# 再给root用户重新修改密码
alter user 'root'@'localhost' identified by '123456';