20190526 - CentOS 7 中 安装 MySQL 8 并授权 root 远程访问

1. CentOS 7 中 安装 MySQL 8

CentOS 7 中内置 MariaDB 建议升级一下用,性能好很多。但如果一定要用 MySQL 8,就得自己装。

坦白的说,Oracle 升级 MySQL 8,一方面是 5.7 性能不如 MariaDB,二个就是为了造坑(以安全的名义)。

2. MySQL 8 授权 root 远程访问

MySQL 8 授权 root 远程访问绝对是坑,以往的旧命令都会提示失败,因为安全原因,尤其是在 CentOS 7 这种安全的系统上。

% 是什么?

是 MySQL 对地址的通配符,默认 root 用户的 host 是 localhost,不要去修改,要加一行 'root'@'%',当然这是开发环境,生产环境建议用其他用户。

skip-grant-tables 是什么?

是 MySQL 的选项,即具备本地权限时,直接跳过授权表直接修改 mysql 数据库。

如果不注意,可能会陷入授权死锁(加了不能授权,去掉不能登录),此时加上,并 update 清空 root@localhost 密码可以解决。

可以 修改 /etc/my.cnf 加入 skip-grant-tables 一行,搞完事再改回去,也可以

service mysqld stop; mysqld_safe --skip-grant-tables &

这样运行的 mysql 就是没有铠甲的,你可以聪明的用各种 select insert delete update 搞事情,当然,搞砸了别跑路。

MySQL 8  中授权关键在此,这两句需要连续运行

mysql> CREATE USER 'root'@'%' IDENTIFIED BY 'Password!@123';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;

3. 吐槽 SQLyog

Webyog 的 SQLyog 本来属于那种原生的很 man 的,不像 MySQL WorkBench 那样软绵绵的,天知道他们用了什么开发。

曾今为 SQLyog 提交过自动写 SQL 的代码,生成原生 insert update delete select 语句及快捷键的设置,都是本人贡献的 C/C++ 代码,当然,那是在 google code 时代。

但如今 SQLyog 居然连 MySQL 8 的 plugin:caching_sha2_password 都不支持,依然只支持旧模式 mysql_native_password

可 Navicat 支持啊,SQLyog 真是一手好牌打烂了。

 

真心写了一篇奇怪的笔记。

 

posted on 2019-05-26 02:19  Eric Lee  阅读(284)  评论(0编辑  收藏  举报

导航