本文介绍Linux CentOS 7.6环境下MySQL的安装与配置过程。
安装
先检查是否已经安装mysql-server
rpm -qa|grep mysql-server
下载mysql 5.6rpm包
wget http://repo.mysql.com/mysql-community-release-el6-5.noarch.rpm
安装
rpm -ivh mysql-community-release-el6-5.noarch.rpm
安装服务器
yum -y install mysql-community-server
默认配置文件是/etc/my.cnf
修改配置文件
vi /etc/my.cnf- 设置字符集,在my.cnf文件的[mysqld]节点下添加
default-character-set=utf8//5.1以前用这个 character-set-server=utf8//5.5后使用这个即可 - my.cnf其他配置
[mysql] default-character-set=utf8 [client] port=3306
启动mysql
systemctl start mysql.service
systemctl start mysqld
自启动配置
chkconfg mysqld on
通过下面的命令可以查看是否成功
chkconfig --list mysqld
查看结果,如下图(如果2到5位启用on状态即ok)
防火墙配置
如果需要允许远程访问则需要开放端口,此时需要在防火墙规则里配置开放3306端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
firewall-cmd --reload
ps:iptables配置开放端口有点奇怪,还要遵循一定的顺序,太垃圾了,建议别用。
修改用户默认密码
update user set password=PASSWORD('密码') where User='mysql用户名';
修改完后登录mysql需要使用mysql -u root -p登录,必须修改root用户密码,否则安全性很低
删除匿名用户
delete from mysql.user where user='';
flush privileges;
添加新用户
insert into mysql.user(Host,User,Password) values("localhost","用户名",password("密码"));
用insert语句可能会报错,需要修改my.cnf配置找到sql-mode这一行
sql-mode=NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
允许远程访问
update user set Host='%' where User='用户名';
远程登录必须要设置密码
赋予用户所有权限
//把数据库的所有权限赋予给从ip登录过来的某个用户
grant all privileges on 数据库名称.* to 用户名@'ip地址' identified by '密码'
//把所有权限赋予给某个用户
grant all privileges on *.* to 用户名@'%' identified by '密码';
flush privileges;
权限粒度可以控制的很细。