Linux Centos7 安装 Mysql 8.x 教程

 下载 Mysql [ 华为镜像 ] : Index of mysql-local/Downloads

目录

一、卸载Mariadb

二、将tar包解压到local下面,并且重新命名为mysql

三、添加mysql用户组和用户

四、初始化mysql配置表

五、加入开机启动项

六、配置环境变量

七、登录并修改初始密码

八、问题解决方案

九、开放端口

一、卸载Mariadb

# 查看 mariadb 数据库:
rpm -qa | grep mariadb

# 卸载 mariadb 数据库:
rpm -e --nodeps  mariadb文件名

# 删除 etc 目录下的 my.cnf 文件( 可能不存在,不影响 ):
rm /etc/my.cnf

二、将tar包解压到local下面,并且重新命名为mysql

# 解压:
tar -xvf mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz -C /usr/local/

# 重命名:
[root@~ local]# mv mysql-8.0.13-linux-glibc2.12-x86_64/ mysql

三、添加mysql用户组和用户

# 首先检查 mysql 用户和组是否存在  
cat /etc/group | grep mysql      
cat /etc/passwd | grep mysql

# 添加 mysql 用户和组  
groupadd mysql          
useradd -r -g mysql mysql

四、初始化mysql配置表

# 创建 data 目录
[root@~ mysql]# mkdir data

# 修改当前目录为 mysql 用户
[root@~ mysql]# chown -R mysql:mysql ./ 
# 或者
[root@~ ~]# chown -R mysql.mysql /usr/local/mysql/

# 初始化数据库
[root@~ mysql]# ./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
# 如果出现错误,则说明这是缺少numactl,这个时候如果是Centos就yum -y install numactl就可以解决,然后重新运行上面的initialize命令
​
# 如果出现以下错误:
./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
则运行此代码:
yum install -y libaio



# initialize 成功会出现一个随机密码,记下
# 修改当前用户为root用户
[root@~ mysql]# chown -R root:root ./

# 修改当前的 data 目录为 mysql 用户
[root@~ mysql]# chown -R mysql:mysql data/

# 复制配置文件(如果没有my-default.cnf就手动创建一个文件,并且配置权限)
[root@~ support-files]# touch my-default.cnf
[root@~ support-files]# vim my-default.cnf

# 修改 my-default.cnf 配置文件
[mysqld]
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
port = 3306
socket = /usr/local/mysql/tmp/mysql.sock
lower_case_table_names=1
[client]
default-character-set=utf8
socket= /usr/local/mysql/tmp/mysql.sock
[mysql]
default-character-set=utf8
socket= /usr/local/mysql/tmp/mysql.sock

# 设置权限
[root@~ support-files]# chmod 777 ./my-default.cnf
[root@~ support-files]# cp ./my-default.cnf /etc/my.cnf
[root@~ mysql]# mkdir tmp
[root@~ mysql]# chmod 777 ./tmp/

# 修改 /etc/my.cnf 配置文件
[root@~ mysql]# vi /etc/my.cnf
    [mysqld]
    basedir=/usr/local/mysql
    datadir=/usr/local/mysql/data
    port=3306
    socket=/usr/local/mysql/tmp/mysql.sock
    # 必填项
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

五、加入开机启动项

# copy
[root@~ mysql]# cp ./suport-files/mysql.server /etc/init.d/mysqld

# 增加执行权限
[root@~ mysql]# chmod 755 /etc/init.d/mysqld

# 注册启动服务
[root@~ mysql]# chkconfig --add mysqld

# 查看是否添加成功
[root@~ mysql]# chkconfig --list mysqld

# 启动服务
[root@~ mysql]# ./suport-files/mysql.server start --user=mysql

六、配置环境变量

[root@~ ~]# vi /etc/profile

# 末尾加上:
export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib

# 保存退出之后执行 让文件生效
[root@~ ~]# source /etc/profile

七、登录并修改初始密码

# 建立软链接
ln -s /usr/local/mysql/tmp/mysql.sock /tmp/mysql.sock
​
# 登录 mysql(密码为 initialize 成功生成的随机密码),
mysql -u root -p


############################
#   以下是在 Mysql 中执行   #
############################

# 选择 mysql 库
use mysql;

# 修改密码
alter user 'root'@'localhost' identified by '你的新mysql数据库密码';

# 查询 user 和 host ,并将 host 改成 ‘%’ (允许远程登录)
update user set host = '%' where user = 'root';

# 更新配置
flush privileges;

#选择 mysql 数据库
# 授权用户:任意主机以用户 root 和 root 密码连接到 mysql 服务器 (不需要进行此操作)
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root密码' WITH GRANT OPTION;

# 更新配置 (不需要进行此操作)
flush privileges;

八、问题解决方案

# 经过以上步骤如果还连不上,可以试试以下方式,重置以下密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '你的新mysql数据库密码';
​
# Centos7重置 Mysql8 root 密码

九、开放端口

# 查看防火墙状态
firewall-cmd --state

# 查看已开放的列表
firewall-cmd --list-ports

# 添加要开放的列表
firewall-cmd --zone=public --add-port=3306/tcp --permanent

# 重启防火墙
firewall-cmd --reload

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值