MySQL 搭建
MySQL 在被Orcal 收购之后,开源界担心mysql会被闭源,在CentOS 7.x已经将默认的 MySQL 切换为 Mariadb,Mariadb 是mysql的一个分支,是兼容mysql产品的。
Mariadb
- 安装
yum install -y mysql #但是这个默认安装的是Mariadb
yum install -y mysql-devel
yum install -y mariadb-server mariadb
- 系统相关
systemctl start mariadb #启动MariaDB
systemctl stop mariadb #停止MariaDB
systemctl restart mariadb #重启MariaDB
systemctl enable mariadb #设置开机启动
- 连接数据库
mysql -u root -p
MySQL
RPM安装
#下载 RPM 包
wget http://repo.mysql.com//mysql57-community-release-el7-9.noarch.rpm
# 安装RPM 包
rpm -ivh mysql57-community-release-el7-9.noarch.rpm
# 安装 会提示导入 orcal的密钥
yum install -y mysql-community-server
# 安装之后 默认替换 MariaDB包
yum install -y mysql-devel
问题收集
- 获取随机生成的密码
从mysql 5.7开始 为了增强安全性 在第一次登录不在密码为空了 而是随机生成一段密码保存到了 err.log文件中
RPM包 安装 默认 在 /var/log/mysqld.log
mysql> select @@log_error;
+---------------------+
| @@log_error |
+---------------------+
| /var/log/mysqld.log |
+---------------------+
1 row in set (0.00 sec)
查找密码:
grep "password" /var/log/mysqld.log
#log:
2016-10-10T14:54:47.017230Z 1 [Note] A temporary password is generated for root@localhost: NUTgOlNww1/q
- 设置密码
# 停止 mysql 服务
systemctl stop mysqld.service
#默认第一次进数据库的时候是没有密码的,但有时候进不去 就需要先禁用授权表再进。
#禁用授权表
#方法1:
vim /etc/my.cnf
#在[mysqld]下加入skip-grant-tables
[mysqld]
skip-grant-tables
#方法2: 执行命令启动增加参数
/usr/bin/mysqld_safe --skip-grant-tables &
# 更新密码:
# 选择 数据库
use mysql
# 更新密码
update user set authentication_string=password('*0D3CED9BEC10A777AEG23Cml353A8C08X633045E') where User='root' and Host='localhost';
#保存 并注释掉 skip-grant-tables
flush privileges;
# 更新密码还可会遇到如下错误
# You must reset your password using ALTER USER statement before executing this statement.
vim /etc/my.cnf
#在 [mysqld]下加入 validate_password=OFF
validate_password=OFF
#重启 mysql服务
systemctl restart mysqld
#重新登录mysql
mysql -u root -p mysql
#进入mysql 后重新设置密码 这里设置的暂时的密码 *0D3CED9BEC10A777AEG23Cml353A8C08X633045E
#老版本:
set password = password('*0D3CED9BEC10A777AEG23Cml353A8C08X633045E');
#新版:
set password = '*0D3CED9BEC10A777AEG23Cml353A8C08X633045E';
#最后 注释掉 validate_password=OFF 重启mysql
错误
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
vim /etc/my.conf
plugin-load=validate_password.so
validate-password=FORCE_PLUS_PERMANENT
#skip-grant-tables
##
#validate_password=OFF