Centos7 下配置mysql
Centos7 下配置mysql
Centos7 下配置mysql
使用yum安装
一、下载mysql5.7的yum repo包
由于centos下的yum源中没有mysql,所以需要去官网下载对应版本的repo配置文件
wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm1
然后使用rpm安装repo配置文件(相当于直接把对应的yum源自动配置好)
rpm -ivh mysql57-community-release-el7-9.noarch.rpm
二、安装MySQL
使用yum命令即可完成安装
yum -y install mysql-server
安装完毕之后启动mysql并设置开机自启动
systemctl start mysqld ### 启动mysql
systemctl enabled mysqld ### 设置开机自启动
三、初始化配置MySQL
获取安装时的临时密码
grep 'temporary password' /var/log/mysqld.log ####就是输出结果尾部引号后字符串
如果没有的话,可能是原来安装过mysql,
1、 去把之前安装mysql的目录删干净
rm -rf /var/lib/mysql
2、 然后再次重新启动MySQL
systemctl restart mysqld
使用获取到的临时密码登录到数据库中
mysql -uroot -p
四、修改数据库密码
登陆成功后开始修改密码
#### 第一种
set password=password(‘you password’)
#### 第二种(推荐)
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
####第三种
mysqladmin -uroot -p password "123" 设置密码为123,由于初始没有密码,so -p后为空。
mysqladmin -uroot -p123 password "456" 设置密码为456,-p后跟原来的密码。
修改密码注意事项: 因为mysql本身对密码设置的有策略,所以当设置密码不满足默认设置的策略是修改不了的,所以我们要去修改一下
1、 查看 mysql 初始的密码策略,输入语句 “ SHOW VARIABLES LIKE ‘validate_password%’; ” 进行查看
2.、首先需要设置密码的验证强度等级,设置 validate_password_policy 的全局参数为 LOW 即可,输入设值语句 “ set global validate_password_policy=LOW; ” 进行设值
3. 当前密码长度为 8 ,如果不介意的话就不用修改了,按照通用的来讲,设置为 6 位的密码,设validate_password_length 的全局参数为 6 即可,输入设值语句 “ set global validate_password_length=6; ” 进行设值,
4.、现在可以为 mysql 设置简单密码了,只要满足六位的长度即可,输入修改语句 “ ALTER USER ‘root’@‘localhost’ IDENTIFIED BY ‘123456’; ” 可以看到修改成功,表示密码策略修改成功了!!!
关于mysql密码策略相关参数
关于 mysql 密码策略相关参数;
1)、validate_password_length 固定密码的总长度;
2)、validate_password_dictionary_file 指定密码验证的文件路径;
3)、validate_password_mixed_case_count 整个密码中至少要包含大/小写字母的总个数;
4)、validate_password_number_count 整个密码中至少要包含阿拉伯数字的个数;
5)、validate_password_policy 指定密码的强度验证等级,默认为 MEDIUM;
关于 validate_password_policy 的取值:
0/LOW:只验证长度;
1/MEDIUM:验证长度、数字、大小写、特殊字符;
2/STRONG:验证长度、数字、大小写、特殊字符、字典文件;
6)、validate_password_special_char_count 整个密码中至少要包含特殊字符的个数;
五、开启远程控制
MySQL默认是没有开启远程控制的,必须添加远程访问的用户
grant all privileges on 数据库名.表名 to 创建的用户名(root)@"%" identified by "密码";
# 数据库名.表名 如果写成*.*代表授权所有的数据库
flush privileges; #刷新刚才的内容
#如:
grant all privileges on *.* to aaa@qq.com"113.64.243.1" identified by "123456789";
@ 后面是访问mysql的客户端IP地址(或是 主机名) % 代表任意的客户端,如果填写 localhost 为本地访问(那此用户就不能远程访问该mysql数据库了)。同时也可以为现有的用户设置是否具有远程访问权限。
六、配置编码
MySQL默认的数据库编码格式是拉丁编码格式,这样存储中文时会出现‘?’等问题,
[外链图片转存失败(img-BSrDQ1G8-1564661400831)(C:\Users\chenluzhong\AppData\Roaming\Typora\typora-user-images\1559203996908.png)]
去找到/etc/my.cnf 配置文件修改编码格式为utf8
vi /etc/my.cnf
#添加
character_set_server=utf8
init_connect='SET NAMES utf8'
修改mysqld配置文件
# 修改mysqld的配置文件
vim /etc/mysql/mysql.conf.d/mysqld.cnf
#添加
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
# 修改mysql客户端的配置文件
sudo vim /etc/mysql/conf.d/mysql.cnf
#加上如下代码(见图4.1.2)
[mysql]
default-character-set=utf8
[client]
default-character-set=utf8
# 2、重启MySQL服务
systemctl restart mysql
# 3、查看一下,如图4.1.3
show variables like "%character%";