CentOS7默认安装了和MySQL有兼容性的MariaDB数据库,在我们安装MySQL之前为了避免发生冲突首先删除MariaDB。
1.删除系统自带的MariaDB
rpm -qa | grep maria
yum remove mariadb-libs -y
2.在CentOS7上yum安装MySQL需使用MySQL的yum源
yum localinstall http://dev.mysql.com/get/mysql57-community-release-el7-7.noarch.rpm
3.查看MYSQL的yum源是否安装成功,搜索mysql-community-server(如果能查到说明成功)
yum info mysql-community-server
4.安装MySQL
yum install mysql-community-server -y --nogpgcheck
5.查看安装的mysql版本
mysqld --version
6.启动及停止MySQL
systemctl enable mysqld.service //启用MYSQL服务
systemctl start mysqld.service //启动MYSQL服务
systemctl stop mysqld.service //停用MYSQL服务
systemctl restart mysqld.service //重启MYSQL服务
7.先设置root的密码(vi /etc/my.cnf),加上skip-grant-tables
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
skip-grant-tables
8.保存并退出
esc
:wq
9.重启mysql服务
systemctl restart mysqld.service
10.免密码登录(提示输入密码直接回车)
mysql -uroot -p
11.设置新密码(密码包含大写,小写,数字和符号)
use mysql;
update user set authentication_string = password('你的新密码') WHERE user = 'root';
flush privileges;
exit;
12.删除上面添加skip-grant-tables并重启mysql服务
13.经常需要用的一个功能(默认MYSQL是不允许远程登录的,下面开启远程登录)
mysql -u root -proot
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的密码' WITH GRANT OPTION;
注意:执行上面授权的时候的有可能出现让你设置密码
ERROR 1820 (HY000): You must SET PASSWORD before executing this statement
那是因为root的密码为空,按照下面的方式设置一下就可以了
SET PASSWORD = PASSWORD(‘123456’);
14.修改mysql的 /etc/my.cnf 文件中的字符集键值
port = 3306
socket = /var/lib/mysql/mysql.sock
character-set-server=utf8mb4
注意事项:mysql5.7报only_full_group_by错,解决方案
SET GLOBAL sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';