mysql 5.7的安装及权限设置

本文详细介绍在Linux环境下MySQL5.7的RPM安装步骤,包括删除旧包、启动停止服务、修改初始密码、调整密码复杂度、修改数据目录等高级配置。此外,还提供了MySQL用户管理、权限分配、服务状态查询及系统配置检查的全面指南。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads

 

linux MySQL5.7 rpm安装

删除旧包:

# rpm -qa | grep -i mysql
# rpm -ev mysql-libs-* --nodeps

安装rpm包:

# rpm -ivh mysql-community-common-5.7.17-1.el7.x86_64.rpm
# rpm -ivh mysql-community-libs-5.7.17-1.el7.x86_64.rpm
# rpm -ivh mysql-community-client-5.7.17-1.el7.x86_64.rpm
# rpm -ivh mysql-community-server-5.7.17-1.el7.x86_64.rpm

启动、停止:

# service mysqld start
# service mysqld stop
# service mysqld status

初始随机密码:

# cat /var/log/mysqld.log | more

修改初始密码及授权远程访问:

# mysql -uroot -p
mysql> set password='Pwd@123456';
mysql> grant all privileges on *.* to 'root'@'%' identified by 'Pwd@123456';

密码复杂度属性:

mysql> set global validate_password_policy=0;

validate_password_policy有以下取值:(默认是1,即MEDIUM,所以刚开始设置的密码必须符合长度,且必须含有数字,小写或大写字母,特殊字符。)

PolicyTests Performed
0 or LOWLength
1 or MEDIUMLength; numeric, lowercase/uppercase, and special characters
2 or STRONG

Length; numeric, lowercase/uppercase, and special characters; dictionary file

 

 

修改数据目录:

 新目录需要给mysql用户授权,mysqld_safe日志文件授权,关闭selinux(没找到相关策略设置的方法)

# mkdir /data/mysql/data
# mv /var/lib/mysql/* /data/mysql/data/
# mkdir /data/mysql/log
# chown mysql:mysql -R /data/mysql
# touch mysqld_safe.log
# chown mysql:mysql mysqld_safe.log
# vi /etc/my.cnf
/**
[client]
port = 3306
socket = /data/mysql/log/mysql.sock
default-character-set=utf8

[mysql]
no-auto-rehash
socket=/data/mysql/log/mysql.sock
default-character-set=utf8

[mysqld]
port = 3306
socket = /data/mysql/log/mysql.sock
character-set-server=utf8
lower_case_table_names=1
basedir=/usr
datadir=/data/mysql/data
log-error=/data/mysql/log/error.log
pid-file=/data/mysql/log/mysql.pid
init_connect='SET NAMES utf8'
symbolic-links=0

skip-external-locking
key_buffer_size = 16M
max_allowed_packet = 1M
table_open_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M

[mysqld_safe]
log-error=/data/mysql/log/mysqld_safe.log
*/
# getenforce
Enforcing
# setenforce 0
# vi /etc/selinux/config
/**
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
#SELINUX=enforcing
SELINUX=disabled
# SELINUXTYPE= can take one of these two values:
#     targeted - Targeted processes are protected,
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted 
*/
# service mysqld start

 

其他命令:

# mysqladmin -u root -p password
mysql> select version();


# chkconfig --list
# chkconfig --level 345 mysqld on
# netstat -na | grep 3306

mysql> CREATE USER 'username'@'host' IDENTIFIED BY 'password';

# service mysqld --initedialize
Usage: /etc/init.d/mysqld {start|stop|status|restart|condrestart|try-restart|reload|force-reload}
# service mysqld start
Initializing MySQL database:                               [  OK  ]
Installing validate password plugin:                       [  OK  ]
Starting mysqld:                                           [  OK  ]

 

yum 和 rpm安装mysql彻底删除

1、yum方式安装的MySQL

 $ yum remove mysql mysql-server mysql-libs compat-mysql51

$ rm -rf /var/lib/mysq

$ rm /etc/my.cnf

查看是否还有mysql软件:

$ rpm -qa|grep mysql

如果存在的话,继续删除即可,删除方式:yum remove + 【名字】。

 

2、rpm方式安装的mysql

 

a)查看系统中是否以rpm包安装的mysql:

 

[root@localhost opt]# rpm -qa | grep -i mysql
MySQL-server-5.6.17-1.el6.i686
MySQL-client-5.6.17-1.el6.i686

 

b)卸载mysql

[root@localhost local]# rpm -e MySQL-server-5.6.17-1.el6.i686
[root@localhost local]# rpm -e MySQL-client-5.6.17-1.el6.i686

c)删除mysql服务

[root@localhost local]# chkconfig --list | grep -i mysql
[root@localhost local]# chkconfig --del mysql

d)删除分散mysql文件夹

[root@localhost local]# whereis mysql 或者 find / -name mysql

 

mysql: /usr/lib/mysql /usr/share/mysql

清空相关mysql的所有目录以及文件
rm -rf /usr/lib/mysql
rm -rf /usr/share/mysql

rm -rf /usr/my.cnf

 

通过以上几步,mysql应该已经完全卸载干净了。

 

MySQL5.7 添加用户、删除用户与授权

mysql -uroot -proot

MySQL5.7 mysql.user表没有password字段改 authentication_string;

一. 创建用户:

命令:CREATE USER 'username'@'host' IDENTIFIED BY 'password';

例子: CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456';

        CREATE USER 'dog2'@'localhost' IDENTIFIED BY '';

PS:username - 你将创建的用户名,

host - 指定该用户在哪个主机上可以登陆,此处的"localhost",是指该用户只能在本地登录,不能在另外一台机器上远程登录,如果想远程登录的话,将"localhost"改为"%",表示在任何一台电脑上都可以登录;也可以指定某台机器可以远程登录;

password - 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器。

二.授权:

命令:GRANT privileges ON databasename.tablename TO 'username'@'host'

PS: privileges - 用户的操作权限,如SELECT , INSERT , UPDATE 等(详细列表见该文最后面).如果要授予所的权限则使用ALL.;databasename - 数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示, 如*.*.

例子: GRANT SELECT, INSERT ON mq.* TO 'dog'@'localhost';

三.创建用户同时授权

mysql> grant all privileges on mq.* to test@localhost identified by '1234';
Query OK, 0 rows affected, 1 warning (0.00 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec)

PS:必须执行flush privileges; 

否则登录时提示:ERROR 1045 (28000): Access denied for user 'user'@'localhost' (using password: YES ) 

 

四.设置与更改用户密码

命令:SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');

例子: SET PASSWORD FOR 'dog2'@'localhost' = PASSWORD("dog");

五.撤销用户权限

      命令: REVOKE privilege ON databasename.tablename FROM 'username'@'host';

     说明: privilege, databasename, tablename - 同授权部分.

      例子: REVOKE SELECT ON mq.* FROM 'dog2'@'localhost';

PS: 假如你在给用户'dog'@'localhost''授权的时候是这样的(或类似的):GRANT SELECT ON test.user TO 'dog'@'localhost', 则在使用REVOKE SELECT ON *.* FROM 'dog'@'localhost';命令并不能撤销该用户对test数据库中user表的SELECT 操作.相反,如果授权使用的是GRANT SELECT ON *.* TO 'dog'@'localhost';则REVOKE SELECT ON test.user FROM 'dog'@'localhost';命令也不能撤销该用户对test数据库中user表的Select 权限.

      具体信息可以用命令SHOW GRANTS FOR 'dog'@'localhost'; 查看.

六.删除用户

      命令: DROP USER 'username'@'host';

七.查看用户的授权

mysql> show grants for dog@localhost;
+---------------------------------------------+
| Grants for dog@localhost |
+---------------------------------------------+
| GRANT USAGE ON *.* TO 'dog'@'localhost' |
| GRANT INSERT ON `mq`.* TO 'dog'@'localhost' |
+---------------------------------------------+
2 rows in set (0.00 sec)

PS:GRANT USAGE:mysql usage权限就是空权限,默认create user的权限,只能连库,啥也不能干

 

 

CentOS 7下启动、关闭、重启、查看MySQL服务

1.启动命令

[root@xufeng Desktop]# service mysqld start
Redirecting to /bin/systemctl start  mysqld.service
2.关闭命令

[root@xufeng ~]# service mysqld stop
Redirecting to /bin/systemctl stop  mysqld.service
3.重启命令

[root@xufeng ~]# service mysqld restart
Redirecting to /bin/systemctl restart  mysqld.service
 
4.查看服务状态

[root@xufeng ~]# service mysqld status
Redirecting to /bin/systemctl status  mysqld.service
● mysqld.service - MySQL Server
   Loaded: loaded (/usr/lib/systemd/system/mysqld.service; disabled; vendor preset: disabled)
   Active: active (running) since Wed 2018-07-18 22:34:06 EDT; 1min 11s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
  Process: 4366 ExecStart=/usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid $MYSQLD_OPTS (code=exited, status=0/SUCCESS)
  Process: 4345 ExecStartPre=/usr/bin/mysqld_pre_systemd (code=exited, status=0/SUCCESS)
 Main PID: 4370 (mysqld)
   CGroup: /system.slice/mysqld.service
           └─4370 /usr/sbin/mysqld --daemonize --pid-file=/var/run/mysqld/mysqld.pid
 
Jul 18 22:34:04 xufeng.goertek.com systemd[1]: Starting MySQL Server...
Jul 18 22:34:06 xufeng.goertek.com systemd[1]: Started MySQL Server.
5.查看MySql系统配置

[root@xufeng ~]# cat /etc/my.cnf
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
 
[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
 
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
 
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
 
--------------------- 
作者:xufengzhu 
来源:优快云 
原文:https://blog.youkuaiyun.com/xufengzhu/article/details/81110982 
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值