下载mysql yum包
官方下载地址:https://dev.mysql.com/downloads/repo/yum/
或者直接使用wget下载(注意:下载mysql需要有oracle账号,oracle公司产品都需要oracle账号才能下载)
下载自己需要的mysql版本就行,下载连接可以通过浏览器获取
wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
安装软件源
rpm -Uvh https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm
安装MySQL
yum install mysql-community-server
# 安装过程中如果出现y/n的话就一直y就行了,如果嫌麻烦可以用下面这个命令来安装
yum install -y mysql-community-server
注意:
如果yum命令报Another app is currently holding the yum lock; waiting for it to exit…
可以通过强制关掉yum进程:
rm -f /var/run/yum.pid
启动&配置
# 启动
service mysqld start
# 查看运行状态
service mysqld status
看到绿色的running代表已经启动成功,用红色框标识出来的便是
然后mysql在5.6之后的版本都会默认生成一个默认密码,是root用户的。通过如下命令查看密码
grep 'temporary password' /var/log/mysqld.log
用红色框标识出来的便是默认设置的密码
进入MySQL
执行完如下命令之后输入默认密码
mysql -u root -p
修改密码
由于MySQL8新提供了一种密码加密方式caching-sha2-password,且为默认,目前很多客户端都不支持,所以我们在创建新角色用户的时候可以指定其为mysql_native_password,原来的root账户等不去做任何改变
8.0密码策略要求密码必须包含字母(大小写都行),数字,特殊字符,密码长度不能小于8
ALTER USER `root`@`localhost` IDENTIFIED BY '新密码';
退出MySQL
exit
# 或者
quit
然后使用新密码登录就行
创建用户和分配权限
创建用户前必须修改root账号默认密码
# 创建一个test用户(一般情况下root用户只在本地环境下使用),密码是29dIg;2^,数据库的密码最好设置得连自己都记不住。
CREATE USER 'test'@'%' IDENTIFIED WITH mysql_native_password BY '29dIg;2^';
# 授权数据库给用户,并设置所有ip都可以远程连接
# 如果只授予用户某些数据库的话就把*.*改成 数据库名称.* 意思就是 数据库.表
# 如果只授予用户某些权限的话,比如只能读不能写,就把GRANT ALL改成GRANT SELECT
GRANT ALL ON *.* TO 'test'@'%';
# 当然,你也可以撤销授权,用法和授权几乎都是一样的。
REVOKE ALL ON *.* from 'test'@'%';
最后使设置立即生效
flush privileges;
注意:
安装完后别忘了开放对应端口,一般是3306,阿里云可以通过安全组开放,本地虚拟机则通过防火墙命令开放
CentOS7.0以上默认使用firewall防火墙
# 查询端口是否开放
firewall-cmd --query-port=3306/tcp
# 开放3306端口
firewall-cmd --permanent --add-port=3306/tcp
# 重启防火墙(修改配置后要重启防火墙)
firewall-cmd --reload
CentOS7.0以下使用iptables防火墙
# 开启3306端口
vim /etc/sysconfig/iptables
# 加入如下代码(按i进入编辑模式)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
# 保存退出后重启防火墙 (按ESC输入:wq按ENTER保存退出)
service iptables restart