1、查看系统中是否已安装 MySQL 服务
rpm -qa | grep mysql
或者
yum list installed | grep mysql
2、如果有那么就删除mysql及其依赖包
yum remove 依赖包
3、下载mysql5.7的源
wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
4、安装 mysql57-community-release-el7-8.noarch.rpm这个文件
rpm -ivh mysql57-community-release-el7-8.noarch.rpm
5、开始安装mysql(安装的过程中会出现选择,可以一直选择y)
yum install mysql-server
6、安装完成后启动mysql
service mysqld start
7、查看mysql生成的随机密码,并记录下来
grep "password" /var/log/mysqld.log
8、登录到mysql
mysql -u root -p 回车输入密码,输入的密码是看不见的
.CZ)eDWu-1FF(这是密码)
登录成功
9、修改mysql密码为自己的密码
SET PASSWORD = PASSWORD('新密码');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
刷新权限生效
flush privileges;
(如果出现以下错误,则是因为mysql的安全策略限制所引起的)
10、修改mysql安全策略
查看mysql当前密码的策略
show variables like 'validate_password%';
validate_password_dictionary_file:密码策略文件,策略为STRONG才需要
validate_password_length:密码最少长度
validate_password_mixed_case_count:大小写字符长度,至少1个
validate_password_number_count :数字至少1个 validate_password_special_char_count:特殊字符至少1个
修改策略的值为
set global validate_password_policy=0;
set global validate_password_length=1;
11、再次修改密码,修改成功(修改成功后重启mysql,mysql的安全策略会初始化到安装的时候一样)
SET PASSWORD = PASSWORD('新密码');
刷新权限生效
flush privileges;
12、设置用户 root 可以在任意 IP 下被访问
grant all privileges on *.* to root@"%" identified by "密码";
刷新权限生效
flush privileges;
13、设置用户 root 可以在本地被访问
grant all privileges on *.* to root@"localhost" identified by "密码";
刷新权限生效
flush privileges;
14、最后连接云服务器上的mysql数据库(连接成功)ps:最好用ip进行数据库连接
15、设置子字符集为utf-8和解决工具连接mysql执行语句时报错的问题
vim /etc/my.cnf insert打开编辑模式
直接将文中的
[mysqld]替换成下面的4句
[client]
default-character-set=utf8
[mysqld]
character_set_server=utf8
sql_mode=PIPES_AS_CONCAT,ANSI_QUOTES,NO_AUTO_VALUE_ON_ZERO,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
加sql_mode这一句是为了防止工具连接时执行语句报错
安装完mysql后查询出来的结果是这样
select @@sql_mode;
sql_mode=PIPES_AS_CONCAT,ANSI_QUOTES,ONLY_FULL_GROUP_BY,NO_AUTO_VALUE_ON_ZERO,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
这里去掉了其中的 ONLY_FULL_GROUP_BY防止执行语句时报错
esc退出编辑模式,输入:wq保存
重启mysql
service mysqld restart
如果不设置字符集使用sql语句
select name,address,(case sex when 1 then '男' when 0 then '女' else '未知' end) as sex from t_student;
导出来的数据会出现乱码的情况
设置字符集后导出的数据恢复正常