1. 选择对应版本
执行以下命令,下载并安装MySQL官方的Yum Repository。
打开网址:https://dev.mysql.com/downloads/repo/yum/,选择对应linux版本
wget http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql-community-server
-
问题1 Error: Unable to find a match: mysql-community-server
安装mysql时可能出现错误Error: Unable to find a match: mysql-community-server
解决:
先执行:yum module disable mysql
再执行:yum -y install mysql-community-server
-
错误2:仓库 “MySQL 5.7 Community Server“ 的 GPG 公钥已安装,但是不适用于此软件包
在执行yum -y install mysql-community-server 命令时有可能出现 仓库 “MySQL 5.7 Community Server“ 的 GPG 公钥已安装,但是不适用于此软件包】错误
要先修改公钥url:命令如下:
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
然后继续执行 yum -y install mysql-community-server ,如下安装成功
2. 执行以下命令,启动 MySQL 数据库。
systemctl start mysqld
3. 执行以下命令,查看MySQL初始密码。
grep "password" /var/log/mysqld.log
4. 执行以下命令,登录mysql,并修改MySQL默认密码。
#登录mysql
mysql -uroot -p
set global validate_password_policy=0; #修改密码安全策略为低(只校验密码长度,至少8位)。
ALTER USER 'root'@'localhost' IDENTIFIED BY '12345678';
5. 授予root用户远程管理权限。
mysql> use mysql #切换到 mysql 数据库
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
mysql> select User,Host from user;
+---------------+-----------+
| User | Host |
+---------------+-----------+
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+---------------+-----------+
3 rows in set (0.00 sec)
#可以看到没有远程权限,只有本地的连接权限。
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '数据库密码' WITH GRANT OPTION;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges; #刷新权限
Query OK, 0 rows affected (0.00 sec)
mysql> select User,Host from user;
+---------------+-----------+
| User | Host |
+---------------+-----------+
| root | % | #已经多了 root 的远程用户
| mysql.session | localhost |
| mysql.sys | localhost |
| root | localhost |
+---------------+-----------+
4 rows in set (0.00 sec)
#开启远程访问
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '12345678';
6、 输入exit退出数据库。
关闭mysql服务 systemctl stop mysqld
systemctl start/stop/status mysqld
7、设置开机启动
systemctl enable mysqld
systemctl daemon-reload
8、创建新用户
首先查看mysql中所有的用户
SELECT user,host FROM mysql.user;
-
创建一个用户
CREATE USER 'test'@'%' IDENTIFIED BY '123456';
test 为新创建用户;
% 代表运行远程访问,只允许本地访问可改为localhost或指定ip
123456 为test用户密码
给用户赋予权限
如果设置只读权限
GRANT SELECT ON mytestdb.* TO 'test'@'%';
GRANT [权限] ON [库.表] TO [用户名]@[IP]
SELECT 为设置为只有select权限即只读权限,入围所有权限可用 ALL PRIVILEGES 表示
mytestdb 为设置权限的数据库,若为所有数据库用 * 代替
* 代表数据库表,这里指mytestdb下所有的表
test 为用户名
查看权限
show grants for test;
show grants for 用户名;
#h或
SELECT * FROM mysql.user WHERE user='test';
收回权限
REVOKE [权限] ON [库.表] FROM [用户名]@[IP];
删除用户
DROP USER [用户名]@[IP];
刷新权限
FLUSH PRIVILEGES;