卸载历史版本MySQL

参考 “Linux的使用技巧”

安装MySQL

使用rpm来安装MySQL

因为CentOS 7默认安装的数据库是Mariadb,所以使用YUM命令是无法安装MySQL的,只会更新Mariadb。使用rpm来进行安装。可以在mysql的repo源仓库右键复制指定版本的数据库

1
wget http://repo.mysql.com/mysql80-community-release-el7-1.noarch.rpm

安装mysql80-community-release-el7-1.noarch.rpm包

1
rpm -ivh mysql80-community-release-el7-1.noarch.rpm

安装完成后会在/etc/yum.repos.d文件夹里面获得两个文件:

mysql-community.repo && mysql-community-source.repo

使用yum安装mysql服务

1
yum install mysql-server -y

检查是否已经设置为开机启动MySQL服务

1
2
3
4
systemctl list-unit-files|grep mysqld

# 如否,设置开机启动
systemctl enable mysqld

查看MySQL是否启动,未启动则执行启动服务命令

1
2
3
4
5
# 查看是否启动MySQL服务
ps -ef|grep mysql

# 启动服务
systemctl start mysqld

初始化MySQL

1
mysqld --initialize

查看MySQL初始默认密码

1
grep 'temporary password' /var/log/mysqld.log

设置MySQL

重置密码

1
alter user 'root'@'localhost' identified by '12345678';

如果设置密码时候出现提示(你也可以设置满足规则的密码 就不会报错 如:Aa@123456)

ERROR 1819 (HY000): Your password does not satisfy the current policy requirements

代表需要降低policy的等级后在执行

1
set global validate_password.policy=0;

设置数据库编码为utf-8

  1. 打开配置文件

    1
    vim /etc/my.cnf
  2. 在[mysqld],[client],[mysql]节点下添加编码设置(原本就有的替换、没有的追加成下面的内容)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    [client]
    default-character-set=utf8

    [mysql]
    default-character-set=utf8

    [mysqld]
    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    collation-server = utf8_unicode_ci
    init-connect='SET NAMES utf8'
    character-set-server = utf8

    # 以下看实际情况(之前的配置)
    datadir=/var/lib/mysql
    socket=/var/lib/mysql/mysql.sock

    log-error=/var/log/mysqld.log
    pid-file=/var/run/mysqld/mysqld.pid
  3. 重启MySQL即可

    1
    systemctl restart mysqld

开启MySQL远程连接

1
2
3
4
5
use mysql;
#修改root账户权限
update user set host = '%' where user = 'root';
#刷新权限
flush privileges;

使用Navicat Premium 连接MySQL时出现如下错误:

原因:mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后加密规则是caching_sha2_password,navicate驱动目前不支持新加密规则

解决:更改加密规则:

1
2
3
4
5
6
7
use mysql;
# 更改加密方式(远程请将'localhost'换成'%',不远程请将'%'换成'localhost')
ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;
# 更新用户密码(这一步不可少)
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
#刷新权限
flush privileges;