前言
用习惯了 MySql5.7后,对于mysql 的安装、启动、创建用户、开启远程链接,应该说是比较熟悉的。
最近因为做一个python flask 的点餐项目,是一个外包项目,这次,需要用我自己的服务器,我去服务器一看,居然连mysql,还没安装,太惭愧了。于是开始了mysql 漫漫安装,调试之路。
一般在 centos 上安装软禁有两种方式,一种是 下载安装包,然后编译安装,一种是使用 centos 上的安装工具 yum,一般只要 yum install 软件包名 就行了。
我这次,是用源码编译的方式安装的,首先要下载源码包,按照下面的步骤
- 如果没有安装wget,先安装
yum -y install wget
- 下载MySQL官方的 Yum Repository
wget http://repo.mysql.com/mysql57-community-release-el7-10.noarch.rpm
- 使用上边的命令我们就下载到了 Yum Repository,之后我们就可以使用 yum 来进行安装了。
yum -y install mysql57-community-release-el7-10.noarch.rpm
- 安装mysql服务端
yum -y install mysql-community-server
- 启动mysql
systemctl start mysqld.service
- 查看mysql运行状态
systemctl status mysqld.service
到这里,一切都是那么美好的。
后面进入数据库,修改密码,创建用户,都是ok的,但因为要让mysql 数据库可以远程连接,所以要赋予用户远程连接的权限,于是,输入下面的命令,
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password';
结果一直报错,错误一直指向 IDENTIFIED BY 'new password'
,我就纳闷了,试了很多方法,都不起作用,后来才找出问题,原来是 mysql8 在创建用户和赋予权限上,和5.7 不一样了,5.7 版本,一行命令就可以了,但 8 需要分两步,而且,还要去 修改 用户访问的 ip ,一般用 % 替代就可以了。
除了这个之外,mysql8,还有一个5.7不具备的特性,8支持 json格式,但 5.7 不支持,这里要提一下,也并不是完全不支持,myariaDB 是支持 json数据格式的。对于开发者而言,这是一种福音,尤其是现在前后端开发过程中,json 格式作为前后端数据交互的最流行的方式。MySql 8 肯定会受到广大的开发者的青睐的,就是需要去学习它的一些新的特性。
总结
使用任何工具升级前,都需要搞清楚升级后,和之前有什么不一样,否则按照之前的方式去走,很容易问题,耽误时间。