查看当前linux环境,确定使用哪个版本的mysql
# rpm -q centos-release
centos-release-7-4.1708.el7.centos.x86_64
然后在这里 mysql-repo 找到对应的安装路径
比如根据服务器和mysql版本情况,我选择的是http://repo.mysql.com/yum/mysql-8.0-community/el/7/x86_64/
添加 Mysql 源头
cd /etc/yum.repos.d/
vim mysql.repo
# Enable to use MySQL 8.0
[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/x86_64/
enabled=1
gpgcheck=0
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
验证 Mysql 源头
# yum repolist enabled | grep mysql
mysql80-community MySQL 8.0 Community Server
使用yum 安装 mysql
# yum install -y mysql-community-common mysql-community-libs mysql-community-client mysql-community-server mysql-community-devel
==========================================================================================
Package 架构 版本 源 大小
==========================================================================================
正在安装:
mysql-community-client x86_64 8.0.12-1.el7 mysql80-community 26 M
mysql-community-common x86_64 8.0.12-1.el7 mysql80-community 541 k
mysql-community-devel x86_64 8.0.12-1.el7 mysql80-community 4.0 M
mysql-community-libs x86_64 8.0.12-1.el7 mysql80-community 2.2 M
替换 mariadb-libs.x86_64 1:5.5.56-2.el7
mysql-community-libs-compat x86_64 8.0.12-1.el7 mysql80-community 2.1 M
替换 mariadb-libs.x86_64 1:5.5.56-2.el7
mysql-community-server x86_64 8.0.12-1.el7 mysql80-community 349 M
为依赖而安装:
libaio x86_64 0.3.109-13.el7 base 24 k
事务概要
==========================================================================================
安装 6 软件包 (+1 依赖软件包)
配置
包含数据初始化配置和基本建库步骤
启动Mysql服务
# service mysqld start
查看MySQL服务器的状态
# service mysqld status
设置开机启动
# chkconfig mysqld on
生成随机密码
# grep ‘temporary password’ /var/log/mysqld.log
2018-10-16T06:02:34.500574Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: nMXRrVN55
重新登录
# mysql -uroot -p
nMXRrVN55
选配 如果嫌弃密码验证太麻烦,可以调低策略
mysql8 中使用 set global validate_password.policy=0;
mysql5.7 中使用 set global validate_password_policy=0;
配置Mysql 密码及其权限
# ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘xxxxxx’;
查看用户
SELECT DISTINCT CONCAT(‘User: ‘’’,user,’’’@’’’,host,’’’;’) AS query FROM mysql.user;
创建用户
CREATE USER ‘code’@’%’ IDENTIFIED BY ‘xxxxxx’;
创建数据库
create database box_office default character set utf8mb4 collate utf8mb4_unicode_ci;
查看数据库
show databases;
授权
GRANT ALL ON box_office.* TO ‘code’@’%’;
查看授权
show grants for code@’%’;
更改用户密码
SET PASSWORD FOR ‘code’@’%’ = PASSWORD(“xxxxxx”);
取消授权
REVOKE privilege ON box_office.*FROM ‘code’@‘host’;
删除用户
DROP USER ‘code’@‘host’;
caching_sha2_password
Mac 版本的 Sequel Pro 1.1.2 看来还不支持 Mysql8 的登陆,会遇到这个错误,是由于 mysql8 默认使用了「caching_sha2_password」这个更高级的密码加密方式。
MySQL said: Authentication plugin ‘caching_sha2_password’ cannot be loaded: dlopen(/usr/local/lib/plugin/caching_sha2_password.so, 2): image not found
需要用户的密码加密方式,从「caching_sha2_password」改成「mysql_native_password」
使用以下命令使用户密码加密方式立即生效
ALTER USER ‘username’@‘ip_address’ IDENTIFIED WITH mysql_native_password BY ‘password’;
修改配置文件如下,vim /etc/my.cnf 保存后重启mysql
[mysqld]
default_authentication_plugin=mysql_native_password
不过我即使把这个问题解决了,还是用不上 Mysql8 ,打开会 Sequel Pro 会报错。
删除Mysql
查找mysql安装情况
rpm -qa|grep -i mysql
[root@iZbp1at7o13nmv0uakkppkZ ~]# rpm -qa|grep -i mysql
mysql-community-libs-8.0.12-1.el7.x86_64
mysql-community-devel-8.0.12-1.el7.x86_64
mysql-community-common-8.0.12-1.el7.x86_64
mysql-community-server-8.0.12-1.el7.x86_64
mysql-community-client-8.0.12-1.el7.x86_64
mysql-community-libs-compat-8.0.12-1.el7.x86_64
停止mysql服务,删除上面的列表包名
# service mysqld stop
# rpm -ev mysql-community-libs-8.0.12-1.el7.x86_64 --nodeps
# rpm -ev mysql-community-devel-8.0.12-1.el7.x86_64 --nodeps
# rpm -ev mysql-community-common-8.0.12-1.el7.x86_64 --nodeps
# rpm -ev mysql-community-server-8.0.12-1.el7.x86_64 --nodeps
# rpm -ev mysql-community-client-8.0.12-1.el7.x86_64 --nodeps
# rpm -ev mysql-community-libs-compat-8.0.12-1.el7.x86_64 --nodeps
查找mysql文件和库,并删除
[root@iZbp1at7o13nmv0uakkppkZ ~]# find / -name mysql
/var/lib/mysql
/var/lib/mysql/mysql
/etc/selinux/targeted/active/modules/100/mysql
[root@iZbp1at7o13nmv0uakkppkZ ~]# rm -rf /var/lib/mysql
[root@iZbp1at7o13nmv0uakkppkZ ~]# rm -rf /var/lib/mysql/mysql
[root@iZbp1at7o13nmv0uakkppkZ ~]# rm -rf /etc/selinux/targeted/active/modules/100/mysql
删除my.cnf
rm -rf /etc/my.cnf