1. 安装MySql
建议使用root用户角色进行安装,如果没有root权限就使用当前用户角色进行安装
-
测试当前系统是否有mysql,如果有,卸载自带的Mysql-libs。
## 测试命令 [heather@hadoop01 mysql ]$ rpm -qa | grep -i -E mysql\|mariadb ## 删除命令 [heather@hadoop01 mysql ]$ rpm -qa | grep -i -E mysql\|mariadb | xargs -n1 sudo rpm -e --nodeps
-
如果Linux是最小化安装的系统(比如阿里云服务器),在后续安装
05_mysql-community-server-5.7.16-1.el7.x86_64.rpm
时可能会出 现如下错误[heather@hadoop01 mysql]$ sudo rpm -ivh 05_mysql-community-server-5.7.16-1.el7.x86_64.rpm 警告:05_mysql-community-server-5.7.16-1.el7.x86_64.rpm: 头V3 DSA/SHA1 Signature, 密钥 ID 5072e1f5: NOKEY 错误:依赖检测失败: libaio.so.1()(64bit) 被 05_mysql-community-server-5.7.16-1.el7.x86_64 需要 libaio.so.1(LIBAIO_0.1)(64bit) 被 05_mysql-community-server-5.7.16-1.el7.x86_64 需要 libaio.so.1(LIBAIO_0.4)(64bit) 被 05_mysql-community-server-5.7.16-1.el7.x86_64 需要
-
卸载MySQL依赖,虽然机器上没有装MySQL,但是这一步不可少
[heather@hadoop01 mysql]# sudo yum remove mysql-libs
-
通过yum安装缺少的依赖,然后重新安装05_mysql-community-server-5.7.16-1.el7.x86_64 即可
[heather@hadoop01 mysql]$ sudo yum install -y libaio [heather@hadoop01 mysql]$ sudo yum -y install autoconf
-
-
安装mysql数据库的rpm包,一定要按照先后顺序安装,否则报错。
[heather@hadoop01 mysql]$ sudo rpm -ivh 01_mysql-community-common-5.7.16-1.el7.x86_64.rpm [heather@hadoop01 mysql]$ sudo rpm -ivh 02_mysql-community-libs-5.7.16-1.el7.x86_64.rpm [heather@hadoop01 mysql]$ sudo rpm -ivh 03_mysql-community-libs-compat-5.7.16-1.el7.x86_64.rpm [heather@hadoop01 mysql]$ sudo rpm -ivh 04_mysql-community-client-5.7.16-1.el7.x86_64.rpm [heather@hadoop01 mysql]$ sudo rpm -ivh 05_mysql-community-server-5.7.16-1.el7.x86_64.rpm
-
注意:如果报如下错误,这是由于yum安装了旧版本的GPG keys所造成,从rpm版本4.1后,在安装或升级软件包时会自动检查软件包的签名。
warning: 05_mysql-community-server-5.7.16-1.el7.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY error: Failed dependencies: libaio.so.1()(64bit) is needed by mysql-community-server-5.7.16-1.el7.x86_64
-
解决办法:
[heather@hadoop01 mysql]$ sudo rpm -ivh 05_mysql-community-server-5.7.16-1.el7.x86_64.rpm --force --nodeps
-
-
删除/etc/my.cnf文件中datadir指向的目录下的所有内容,如果有内容的情况下:
- 查看datadir的值:
datadir=/var/lib/mysql
- 删除/var/lib/mysql目录下的所有内容:
[heather@hadoop01 mysql]$ cd /var/lib/mysql [heather@hadoop01 mysql]$ sudo rm -rf ./* //注意执行命令的位置
-
初始化数据库
[heather@hadoop01 mysql]$ sudo mysqld --initialize --user=mysql
-
查看临时生成的root用户的密码
[heather@hadoop01 mysql]$ sudo cat /var/log/mysqld.log ## 如下内容【最后一行】: ——> oiu+fsst<2Hv就是mysql密码 A temporary password is generated for root@localhost: oiu+fsst<2Hv
-
启动MySQL服务
[heather@hadoop01 mysql]$ sudo systemctl start mysqld
2. 配置MySql
-
登录MySQL数据库(如果报错,给密码加单引号)
[heather@hadoop01 mysql]$ mysql -uroot -p'oiu+fsst<2Hv' 或者: [heather@hadoop01 mysql]$ mysql -uroot -p Enter password: 输入临时生成的密码【oiu+fsst<2Hv】
-
设置复杂密码(由于mysql密码策略,此密码必须足够复杂)
mysql> set password=password("heathers");
-
更改mysql密码策略
Mysql更新了密码安全策略,在执行下面命令时会报错:报错信息如下:
mysql> set global validate_password_length=4; ERROR 1193 (HY000): Unknown system variable 'validate_password_length' mysql> set global validate_password_policy=0; ERROR 1193 (HY000): Unknown system variable 'validate_password_policy'
解决办法查看链接:https://www.cnblogs.com/blog0403/p/14790397.html。
出于安全性考虑,不建议设置密码太简单,下面安全策略设置忽略即可。
mysql> set global validate_password_length=4; mysql> set global validate_password_policy=0;
-
设置新密码==(不建议修改)==
mysql> set password=password("heathers");
-
进入MySQL库
mysql> use mysql
-
查询user表
mysql> select user, host from user;
-
修改mysql库下的user表中的root用户允许任意ip连接==(把Host内容改为%)==
mysql> update user set host="%" where user="root";
-
刷新
mysql> flush privileges;
-
退出
mysql> quit;