centos7 配置mysql

随声附和 提交于 2019-12-04 07:38:11

 

1.配置yum源

# 下载mysql源安装包
shell> wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm
# 安装mysql源
shell> yum localinstall mysql57-community-release-el7-8.noarch.rpm

检查mysql源是否安装成功

shell> yum repolist enabled | grep "mysql.*-community.*"


看到上图所示表示安装成功

2.安装mysql

shell> yum install mysql-community-server

 

3、启动MySQL服务

shell> systemctl start mysqld

查看MySQL的启动状态

shell> systemctl status mysqld

4、开机启动

shell> systemctl enable mysqld
shell> systemctl daemon-reload

 

5、修改root默认密码

mysql安装完成之后,在/var/log/mysqld.log文件中给root生成了一个默认密码。 
查看默认密码

shell> grep 'temporary password' /var/log/mysqld.log

 
其中 dX&Je9aNGofx 就是我的默认密码

用默认密码登录

shell> mysql -uroot -p
mysql> Enter password: dX&Je9aNGofx

修改默认密码

 

mysql> SHOW VARIABLES LIKE 'validate_password%';
+--------------------------------------+-------+
| Variable_name                        | Value |
+--------------------------------------+-------+
| validate_password_check_user_name    | OFF   |
| validate_password_dictionary_file    |       |
| validate_password_length             | 4     |
| validate_password_mixed_case_count   | 1     |
| validate_password_number_count       | 0     |
| validate_password_policy             | LOW   |
| validate_password_special_char_count | 1     |
+--------------------------------------+-------+
7 rows in set (0.00 sec)

mysql> set global validate_password_policy=0;  
Query OK, 0 rows affected (0.05 sec)  
   
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> SET PASSWORD = PASSWORD('root');
# 上面的root是你的新密码

6.允许root远程访问mysql

第一种方法

   //登录数据库
  mysql> use mysql; 
  //%为所有ip都可以远程访问
  mysql> update user set host = '%' where user = 'root';  
   //或直接添加一条语句也行     
   mysql> insert into user (host,user,password) values('192.168.0.51','root',password('123'));  
  //查看一下修改
   mysql> select host, user from user;    
   //推送设置到内存或重启服务器也行
  mysql>FLUSH PRIVILEGES; 

第二种方法 

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123@asdf' WITH GRANT OPTION;
mysql> flush privileges;

第一句中”%”表示任何主机都可以远程登录到该服务器上访问。如果要限制只有某台机器可以访问,将其换成相应的IP即可,如: 
GRANT ALL PRIVILEGES ON . TO root@”172.168.193.25” IDENTIFIED BY “123@asdf”; 
123@asdf是登录密码。 
第二句表示从mysql数据库的grant表中重新加载权限数据。因为MySQL把权限都放在了cache中,所以在做完更改后需要重新加载。

注意

1.具体生产环境根据自己的配置需要再进行配置。 
2.阿里云云服务器如果MySQL配置了远程访问还是无法访问,可能是阿里云默认是不开放3306端口的。可以去阿里云的控制台修改网络配置。

7.修改字符集编码 UTF-8

查看当前的字符编码

show variables like 'char%'

检测是否都是utf-8(filesystem除外),如果不是就得改,例如这个character_set_server一般是拉丁编码 
修改编码

//停数据库
systemctl stop mysqld

//进入 my.cnf 文件,一般是在etc路径下
vim /etc/my.cnf
//加入要修改的字符集 修改完:wq退出
在[mysqld]下追加:
character-set-server=utf8
在[mysql]下追加: ps。我没找到这个
default-character-set=utf8

//重启数据库
systemctl start mysqld
#看一眼是不是utf8
show variables like 'char%'

#改变编码
mysql> alter database qwe666 CHARACTER SET utf8;
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!