一、rpm方式安装 mysql5.7.29
1.下载mysql5.7.29的rpm安装包
rpm的mysql包,安装起来简单,解压版的mysql还需要做许多配置,稍有不慎就会出错!!!
下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
2.上传mysql安装包到centos7的系统下
3.安装依赖
3.1 查看linux上是否已经安装了mysql,有则卸载。
一般centos7默认安装了mariadb,这里把它卸载。
查看:[root@localhost bin]# rpm -qa|grep mariadb
卸载:[root@localhost bin]# rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
3.2 安装mysql5.7所需要的依赖
[root@localhost src]# yum install libaio
[root@localhost src]# yum install perl
[root@localhost src]# yum install net-tools
4.安装mysql5.7
4.1 解压mysql5.7安装包
[root@localhost src]# tar -xvf mysql-5.7.24-1.el7.x86_64.rpm-bundle.tar
解压完后会有很过rpm文件,这些就是我们需要安装的。
4.2 安装mysql5.7
[root@localhost src]# rpm -ivh mysql-community-common-5.7.24-1.el7.x86_64.rpm
[root@localhost src]# rpm -ivh mysql-community-libs-5.7.24-1.el7.x86_64.rpm
[root@localhost src]# rpm -ivh mysql-community-client-5.7.24-1.el7.x86_64.rpm
[root@localhost src]# rpm -ivh mysql-community-server-5.7.24-1.el7.x86_64.rpm
如果有报错的情况 可以加 --force --nodeps 参数
如:[root@localhost src]# rpm -ivh mysql-community-libs-5.7.24-1.el7.x86_64.rpm --force --nodeps
4.3 查看mysql5.7的状态,没有启动则把mysql启动
查看mysql启动状态
[root@localhost src]# service mysqld status
出现下面这个death就是没有启动,新装的第一次是没有启动的。
启动mysql active(running)代表启动成功
[root@localhost src]# service mysqld start
4.4 修改密码
查看临时密码:得知临时密码就是如图
[root@localhost src]# grep password /var/log/mysqld.log
用临时密码登录mysql
[root@localhost src]# mysql -uroot –p
修改成新的密码
mysql> set password = password("Admin123&");
有时候,只是为了自己测试,不想密码设置得那么复杂,譬如只想设置root的密码为123456。
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');
但是会报错:
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123');
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
【原因】
原来MySQL5.6.6版本之后增加了密码强度验证插件validate_password,相关参数设置的较为严格。
使用了该插件会检查设置的密码是否符合当前设置的强度规则,若不满足则拒绝设置。影响的语句和函数有:create user,grant,set password,password(),old password。
【解决】
mysql> select @@validate_password_policy;
+----------------------------+
| @@validate_password_policy |
+----------------------------+
| MEDIUM |
+----------------------------+
1 row in set (0.00 sec)
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password_dictionary_file | |
| validate_password_length | 8 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | MEDIUM |
| validate_password_special_char_count | 1 |
+--------------------------------------+--------+
6 rows in set (0.08 sec)
1) 查看mysql全局参数配置
该问题其实与mysql的validate_password_policy的值有关。
查看一下msyql密码相关的几个全局参数:
2)参数解释
validate_password_dictionary_file
插件用于验证密码强度的字典文件路径。
validate_password_length
密码最小长度,参数默认为8,它有最小值的限制,最小值为:validate_password_number_count + validate_password_special_char_count + (2 * validate_password_mixed_case_count)
validate_password_mixed_case_count
密码至少要包含的小写字母个数和大写字母个数。
validate_password_number_count
密码至少要包含的数字个数。
validate_password_policy
密码强度检查等级,0/LOW、1/MEDIUM、2/STRONG。有以下取值:
Policy Tests Performed
0 or LOW Length
1 or MEDIUM Length; numeric, lowercase/uppercase, and special characters
2 or STRONG Length; numeric, lowercase/uppercase, and special characters; dictionary file
默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。
validate_password_special_char_count
密码至少要包含的特殊字符数。
3)修改mysql参数配置
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.05 sec)
mysql>
mysql>
mysql> set global validate_password_mixed_case_count=0;
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password_number_count=3;
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password_special_char_count=0;
Query OK, 0 rows affected (0.00 sec)
mysql> set global validate_password_length=3;
Query OK, 0 rows affected (0.00 sec)
mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------+-------+
| validate_password_dictionary_file | |
| validate_password_length | 3 |
| validate_password_mixed_case_count | 0 |
| validate_password_number_count | 3 |
| validate_password_policy | LOW |
| validate_password_special_char_count | 0 |
+--------------------------------------+-------+
6 rows in set (0.00 sec)
4)修改简单密码:
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123');
Query OK, 0 rows affected, 1 warning (0.00 sec)
4.5 开启远程连接,允许远程连接数据库
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY ' Admin123& ' WITH GRANT OPTION;
4.6 配置mysql的配置文件my.cnf(用默认的也行)
打开配置文件my.cnf
[root@localhost src]# vi /etc/my.cnf
在[mysqld]下面配置几行
lower_case_table_names=1 #配置表名不区分大小写 1:不区分大小写 0:区分大小写 这行必须配置 默认表名是区分大小写的,不利于开发
character-set-server=utf8 #设置为默认编码为utf8
init_connect='SET NAMES utf8'
max_connections=1024 #设置最大连接数
重启mysql 重启配置才能生效
[root@localhost src]# service mysqld restart
4.7 防火墙开启端口
到这其实mysql已经安装和配置好,但是centos7的开了防火墙,外面还是访问不到mysql的,所以还要开端口3306(或者把防火墙关掉也行,生产环境勿用)
关闭防火墙
[root@localhost src]# systemctl stop firewalld
至此,centos7下安装mysql5.7.29完毕.
二、更改mysql数据存储目录
这里更改mysql的目录为/data
mkdir /data
chmod -R 777 /data
systemctl stop mysqld
cp -a /var/lib/mysql/* /data/
chown -R mysql:mysql /data/mysql
修改配置文件
vi /etc/my.cnf
datadir=/home/data/mysql
重启mysql
systemctl restart mysqld
查看mysql的存储目录,需要进入MySQL里面
mysql> show variables like '%datadir%';
+---------------+--------+
| Variable_name | Value |
+---------------+--------+
| datadir | /data/ |
+---------------+--------+
1 row in set (0.00 sec)
作者:Jenwey
链接:https://www.jianshu.com/p/b206e12d74c7
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)