CentOS7下安装MySQL5.7
1.下载yum源
## centos7,mysql5.7
wget 'https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm'
2.检查是否已经安装mysql ,如果存在,则删除
rpm -qa | grep mysql
rpm -qa | grep maria
rpm -e xxx --nodeps
3.安装
rpm -Uvh mysql57-community-release-el7-11.noarch.rpm
4.查看有哪些版本的mysql
yum repolist all | grep mysql
5.安装
yum install -y mysql-community-server
6.启动mysql,在centos7中,没有了service命令,都是使用systemctl命令。注意启动的时候是start mysqld,而不是mysql。
## 而在centos6中,使用service mysqld start
systemctl start mysqld
##查看状态
systemctl status mysqld
7.登录数据库,修改数据库密码
mysql5.7的新特性之一就是在初始化的时候会生成一个自定义的密码,然后你需要找到这个密码,登录的时候输入。临时密码生在/var/log/mysqld.log日志里,我们可以直接通过命令:grep ‘temporary password’ /var/log/mysqld.log获取。
8.登录之后就是常规的修改密码,增加权限之类的了
use mysql;
#5.7版本用这个命令
update user set password=password("123456") where user="root";
#5.7版本及以上修改密码报错,没有password这个字段,使用下面的命令
update mysql.user set authentication_string=password('123456') where user='root';
#开启远程登录
Grant all privileges on *.* to 'root'@'%' identified by '123456' with grant option;
#刷新权限
FLUSH PRIVILEGES;
#退出,使用新密码登录
exit;
9.如果登录mysql后操作任何命令都报下面的错,则按下面方式处理
mysql> show databases;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql> use test;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
...
解决:
alter user user() identified by "123456";
10.额外的配置
mysql的配置文件真的很多,有的还很蛋疼。比如默认的字符集是拉丁字符集,每次创建数据库的时候要设置字符集;默认还不支持group by语句,默认的时区也不是我们现在的北京时间(东八区),会导致我们的时间差了13个点。需要修改下面,并重启。
先输入exit退出数据库客户端。
打开配置文件,yum安装的默认在/etc文件夹下:
vim /etc/my.cnf
在[mysqld]下面添加,不需要分号
字符集:注意是utf8而不是utf-8!
character-set-server=utf8
这时候使用show variables like 'char%';就可以查看到字符集都是utf8了
sql支持group by语句
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
设置时区为东八区
default-time_zone = '+8:00'
保存退出,并重启服务
systemctl restart mysqld
11.设置开机启动
systemctl enable mysqld
systemctl daemon-reload