由于MySQL被甲骨文收购之后存在闭源风险,mysql之父Michael Widenius主导了mysql分支MariaDB的开发以取代mysql。
所以在允许的情况下尽量用MariaDB或者PostgreSQL。MariaDB和MySQL是很接近的,所以转换成本不会太高,不过似乎PostgreSQL才是下一个主流DB,尽管相对来说和MySQL差距大一点。
管它什么开源精神开源洁癖呢,如果仍想使用mysql,可以按如下步骤进行安装。
安装
在CentOS 7下yum直接搜MySQL是搜不到的,官方库已经移除了
根据官方教程进行安装:
这里可以下载对应系统的rpm文件,下载rpm文件在centos7里安装之后就可以在仓库里搜索到mysql了。centos7在这里选择第二个红帽7的版本。通过此页面下载再rz传到centos7中。
-
然后执行
rpm -Uvh mysql80-community-release-el7-3.noarch.rpm
安装mysql库
然后就可以搜到MySQL列表(非8.0版本默认禁用)
-
直接
yum install mysql
会默认安装8.0,并且会替换覆盖掉MariaDB
-
可以看到除了8.0其他版本都是禁用的,如果想安装5.7或者其他旧版本,可以修改配置文件:
vim /etc/yum.repos.d/mysql-community.repo
修改[mysql57-communityl下的enable为1,修改[mysql80-communityl下的enable为0
保存退出,再执行yum install mysql
就默认是5.7了
mysql -V
成功。 -
在开启mysql时又遇到
systemctl start mysqld.service
报错“Failed to start mysqld.service: Unit not found."
解决方法是:yum install -y mariadb-server
(写的是mariadb实际上经过上面的步骤会自己替换为mysql)
start mariadb.service
enable mariadb.service
原来是没安装server,安装之后再启动即可成功。systemctl start mysqld.service
安装之后密码设置
-
首先查看初始密码:
grep "password" /var/log/mysqld.log
-
用初始密码来登录
mysql -uroot -p-dryz#Oah6r=
-
修改密码
set password=password('123456');
这里提示密码不符合密码安全策略,可以想一个更复杂的密码,我是直接set global validate_password_policy=LOW;
降低密码安全等级,然后再set password=password('123456');
修改成功。
开启远程登录
在确保端口开放的情况下,如果出现错误代码1130- Host xxx is not allowed to connect to this MariaDb server,一般是未开启远程登录,如果开启远程登录不可行也可以试试第二步授权。
- 开启远程登录
- 进入mysql
mysql -u root -p
- 更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从"localhost"改称"%"
use mysql; update user set host = '%' where user = 'root' and host='localhost'; select host, user from user;
FLUSH PRIVILEGES;
生效
- 进入mysql
- 授权命令
- 进入mysql
mysql -u root -p
- 输入
GRANT ALL PRIVILEGES ON *.* TO '用户名'@'%' IDENTIFIED BY '密码' WITH GRANT OPTION;
注意将用户名和密码替换为自己的。 FLUSH PRIVILEGES;
也可以
GRANT ALL PRIVILEGES ON *.* TO '用户名'@'116.30.70.187' IDENTIFIED BY '密码' WITH GRANT OPTION;
表示从指定ip从任何主机连接到mysql服务器 - 进入mysql