操作系统: CentOS 7.8 x86_64
MySQL版本: 5.7.33
rpm方式
1. 检查服务器是否已经安装MySQL
yum list installed | grep mysql
- 查看当前的启用的 MySQL 版本:
yum repolist enabled | grep mysql
- 如果检查出来有的话就使用下面这个命令删除
yum -y remove mysql-libs.x86_64
2. 下载MySQL5.7 rpm源
wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
3. 安装下载好的rpm包
rpm -ivh mysql57-community-release-el7-8.noarch.rpm
- 安装成功后,会在
/etc/yum.repos.d/
目录下增加两个文件
4. 安装MySQL
yum install mysql-server
安装过程遇到提示,一直“y”确认即可
5. 启动MySQL服务
- 启动MySQL服务
service mysqld start
- 查看MySQL服务状态
service mysqld status
6. 查看初始密码
- 找到控制台
temporary password
后面输出的临时密码,保存备用
grep "password" /var/log/mysqld.log
7. 登录MySQL
- 登录MySQL
mysql -u root -p
输入你刚才查询出来的初始密码
8. 修改密码
- 1.使用数据库,前提先使用
step7
登录成功
use mysql;
- 2.修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密码';
密码也有默认密码策略,密码包括:数字、大写字母、小写字母、特殊符号、长度8位以上。
9. 开启MySQL远程访问权限 允许远程连接
- 选择1:设置
root
用户 可以在任意 IP 下被访问:
grant all privileges on *.* to 'root'@"%" identified by "新密码" with grant option;
- 选择2: 设置
root
用户可以在本地被访问:
grant all privileges on *.* to 'root'@"localhost" identified by "新密码" with grant option;
10. 刷新权限
上面的操作完毕后,一定记得执行以下命令
flush privileges;
11. 用户设置
注意:根据自己实际情况处理,是否为新项目创建普通用户,授权某个数据库等等,以下为常用操作命令。
1. 新建用户
- 创建一个
普通用户
xx ,密码是xxx
CREATE USER 'xx'@'localhost' IDENTIFIED BY 'xxx';
此处
'localhost'
是指该用户只能在本地登录,不能在另外一台机器上远程登录。
如果想远程登录的话,将"localhost"改为"%"
,表示在任何一台电脑上都可以登录。也可以指定某台机器可以远程登录。
- 使授权立刻生效
flush privileges;
2. 查询用户
select user,host from mysql.user;
3. 删除用户
- 删除用户 "test"
drop user test@localhost;
- 若创建的用户允许任何电脑登陆,删除用户如下
drop user test@'%';
4. 更改密码
- 方法1,密码实时更新;修改用户“test”的密码为“123456”
set password for test =password('123456');
- 方法2,需要刷新;修改用户“test”的密码为“123456”
update mysql.user set password=password('123456') where user='test';
## 刷新
flush privileges;
5. 用户分配权限
- 授予用户test通过外网IP对数据库“testdb”的全部权限
grant all privileges on 'testdb'.* to 'test'@'%' identified by '123456';
- 刷新权限
flush privileges;
如果给某个用户授予表数据
CREATE,ALTER,DROP,SELECT,INSERT,UPDATE,DELETE
的远程访问的权限,这个账号一般用于提供给实施的系统访问以下是:授予用户“test”通过外网IP对于该数据库“testdb”中表的创建、修改、删除权限,以及表数据的增删查改权限的示例语句
grant create,alter,drop,select,insert,update,delete on testdb.* to test@'%';
注意:修改完权限以后 一定要刷新服务,或者重启服务,刷新服务用:
flush privileges;
12. 退出
exit;
13. 安装完成后置操作和常用命令
1. 检查是否已经安装了开机自动启动
systemctl list-unit-files | grep mysqld
如果显示以下内容说明已经完成自动启动安装
mysqld.service enabled
2. 设置开机启动Mysql
systemctl enable mysqld.service
3. 设置开启服务
systemctl start mysqld.service
4. 开启阿里云安全组端口策略
进入控制台,网络和安全->安全组->配置规则,将MySQL监听端口开放即可
5. 卸载
因为安装了Yum Repository,以后每次yum操作都会自动更新,需要把这个卸载掉:
yum -y remove mysql57-community-release-el7-8.noarch
6. 查看端口监听状态
netstat -an|grep 3306
根据占用情况,找到my.cnf,一般在/etc/mysql/下面,具体情况根据实际而定。注释掉其中的bind-address属性。
前提,先登录数据库 mysql -u root -p
7. 查看状态
mysql命令登录后,通过status命令查询版本信息
mysql -u root -p
//输入密码,登录成功后
mysql> status;
mysql命令登录后,通过version()查询版本信息
mysql -u root -p
//输入密码,登录成功后
mysql> select version();
8. 临时关闭防火墙
停止firewall
systemctl stop firewalld.service
9. 常用命令
systemctl start mysqld #启动mysqld
systemctl stop mysqld #停止mysqld
systemctl restart mysqld #重启mysqld
systemctl enable mysqld #设置开机启动
systemctl status mysqld #查看 MySQL Server 状态
10. 用户设置
- 创建一个
普通用户
xx ,密码是xxx
CREATE USER 'xx'@'localhost' IDENTIFIED BY 'xxx';
此处
'localhost'
是指该用户只能在本地登录,不能在另外一台机器上远程登录。
如果想远程登录的话,将"localhost"改为"%"
,表示在任何一台电脑上都可以登录。
也可以指定某台机器可以远程登录。
- 给这个用户授予
SELECT,INSERT,UPDATE,DELETE
的远程访问的权限,这个账号一般用于提供给实施的系统访问
GRANT SELECT,INSERT,UPDATE,DELETE ON . TO 'xx'@'%';
- 创建一个
管理员用户
admin 账号 ,密码是 123456
CREATE USER 'admin'@'%' IDENTIFIED BY 'xxx';
- 给这个用户授予所有的远程访问的权限。这个用户主要用于管理整个数据库、备份、还原等操作。
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%';
- 使授权立刻生效
flush privileges;
11. 默认配置文件路径
配置文件: /etc/my.cnf
日志文件: /var/log//var/log/mysqld.log
服务启动脚本: /usr/lib/systemd/system/mysqld.service
socket文件: /var/run/mysqld/mysqld.pid