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;
来源:oschina
链接:https://my.oschina.net/u/2757155/blog/1611724