mysql授权、启动、启动服务常用命令
发表于:2025-01-28 作者:千家信息网编辑
千家信息网最后更新 2025年01月28日,一、 四种启动方式:1、mysqld启动mysql服务器: ./mysqld --defaults-file=/etc/my.cnf --user=root客户端连接: mysql --default
千家信息网最后更新 2025年01月28日mysql授权、启动、启动服务常用命令一、 四种启动方式:
二、 启动和关闭mysql服务
三、创建用户分配权限
四、 查看用户授予的权限
一、 四种启动方式:
1、mysqld
启动mysql服务器: ./mysqld --defaults-file=/etc/my.cnf --user=root客户端连接: mysql --defaults-file=/etc/my.cnf 或 mysql -S /tmp/mysql.sock
2、mysqld_safe
启动mysql服务器: ./mysqld_safe --defaults-file=/etc/my.cnf --user=root &客户端连接: mysql --defaults-file=/etc/my.cnf 或 mysql -S /tm/mysql.sock
3、mysql.server
cp -v /usr/local/mysql/support-files/mysql.server /etc/init.d/chkconfig --add mysql.server启动mysql服务器:service mysql.server {start|stop|restart|reload|force-reload|status}客户端连接: 同1、2
4、mysqld_multi
mkdir $MYSQL_BASE/data2cat <<-EOF>> /etc/my.cnf[mysqld_multi]mysqld = /usr/local/mysql/bin/mysqld_safemysqladmin = /user/local/mysql/bin/mysqladminuser = mysqladminpassword = mysqladmin[mysqld3306]port = 3306socket = /tmp/mysql3306.sockpid-file = /tmp/mysql3306.pidskip-external-lockingkey_buffer_size = 16Mmax_allowed_packet = 1Mtable_open_cache = 64sort_buffer_size = 512Knet_buffer_length = 8Kread_buffer_size = 256Kread_rnd_buffer_size = 512Kmyisam_sort_buffer_size = 8Mbasedir = /usr/local/mysqldatadir = /usr/local/mysql/data[mysqld3307]port = 3307socket = /tmp/mysql3307.sockpid-file = /tmp/mysql3307.pidskip-external-lockingkey_buffer_size = 16Mmax_allowed_packet = 1Mtable_open_cache = 64sort_buffer_size = 512Knet_buffer_length = 8Kread_buffer_size = 256Kread_rnd_buffer_size = 512Kmyisam_sort_buffer_size = 8Mbasedir = /usr/local/mysqldatadir = /usr/local/mysql/data2EOF#mysql -S /tmp/mysql3306.sockmysql>GRANT SHUTDOWN ON *.* TO 'mysqladmin'@'localhost' identified by 'mysqladmin' with grant option;#mysql -S /tmp/mysql3307.sockmysql>GRANT SHUTDOWN ON *.* TO 'mysqladmin'@'localhost' identified by 'mysqladmin' with grant option;启动mysql服务器:./mysqld_multi --defaults-file=/etc/my.cnf start 3306-3307关闭mysql服务器:mysqladmin shutdown
二、 启动和关闭mysql服务
1. windows下:
启动: mysqld --console 或 net start mysql关闭: mysqladmin -u root shutdown 或 net stop mysql
linux下:
启动: service mysql start停止: service mysql stop重启服务: service mysql restart
三、创建用户分配权限
1. 新建用户: 创建一个名为: buff,密码为: buff的用户
// root 用户登陆 MySQLmysql -uroot -pEnter password:// 新建用户mysql>insert into mysql.user(Host,User,Password) values("localhost","buff",password("buff"));// 刷新系统权限表mysql>flush privileges;
登录测试
mysql>exit// 用户 buff 登陆 MySQLmysql -ubuff -pEnter password:mysql>// 说明新建的用户buff登录成功
用户授权
// root 用户登陆 MySQLmysql -uroot -pEnter password:// 为用户 buff 创建一个数据库 bluebuffmysql>create database bluebuff;// 授权用户 buff 拥有数据库 bluebuff 的所有权限mysql>grant all privileges on bluebuff.* to buff@localhost identified by 'buff';mysql>flush privileges;
登录测试
// 用户 buff 登陆数据库mysql -ubuff -pEnter privileges:// 显示数据库mysql>show databases;
结果如下图所示,说明为用户 buff 授权成功
5、 修改用户 buff 的密码
// root 用户登陆 MySQLmysql -uroot -pEnter password:// 修改用户 buff 的密码mysql>update table mysql.user set password=password('buffer') where User='buff' and Host='localhost';mysql>flush privileges;
6、 删除用户
// root 用户登陆 MySQLmysql -uroot -pEnter password:// 删除用户 buffmysql>delete from mysql.user where User = 'buff' and Host = 'localhost';mysql>flush privileges;
7、 删除数据库
mysql>drop database bluebuff;
四、 查看用户授予的权限
在mysql中,授予用户的权限可能分全局层级权限、数据库层级权限、表层级别权限、列层级别权限、子程序层级权限
1. 全局层级:
全局权限适用于一个给定服务器中的所有数据库。这些权限存储在mysql.user表中。GRANT ALL ON *.*和REVOKE ALL ON *.*只授予和撤销全局权限。例:a. 创建一个测试账号test,授予全局层级的权限mysql> grant select,insert on *.* to test@'%' identified by 'test';mysql> flush privileges;b. 查询授予test的权限show grants for test;select * from mysql.user where user='test'\G;
2 、 数据库层级:
数据库权限适用于一个给定数据库中的所有目标。这些权限存储在mysql.db和mysql.host表中。GRANT ALL ON db_name.*和REVOKE ALL ON db_name.*只授予和撤销数据库权限例:a. 创建一个测试账号test,授予数据库层级的权限drop user test;grant select,insert,update,delete on MyDB.* to test@'%' identified by 'test';b. 查询授予test的权限select * from mysql.user where user='test'\G; --可以看到无任何授权select * from mysql.db where user='test'\G;show grants for test;
3、 表层级:
表权限适用于一个给定表中的所有列。这些权限存储在mysql.tables_priv表中。GRANT ALL ON db_name.tbl_name和REVOKE ALL ON db_name.tbl_name只授予和撤销表权限。例:a. 创建一个测试账号test,授予表层级的权限drop user test;flush privileges;grant all on MyDB.kkk to test@'%' identified by 'test';b. 查询授予test的权限show grants for test; select * from mysql.tables_priv\G;
4、 列层级:
列权限适用于一个给定表中的单一列。这些权限存储在mysql.columns_priv表中。当使用REVOKE时,您必须指定与被授权列相同的列。例:a. 创建一个测试账号test,授予列层级的权限drop user test;flush privileges;grant select (id, col1) on MyDB.TEST1 to test@'%' identified by 'test';flush privileges;b. 查询授予test的权限select * from mysql.columns_priv;show grants for test;
5、 子程序层级:
CREATE ROUTINE, ALTER ROUTINE, EXECUTE和GRANT权限适用于已存储的子程序。这些权限可以被授予为全局层级和数据库层级。而且,除了CREATE ROUTINE外,这些权限可以被授予为子程序层级,并存储在mysql.procs_priv表中。例:a. 创建一个测试账号test,授予子程序层级的权限DROP PROCEDURE IF EXISTS PRC_TEST;DELIMITER //CREATE PROCEDURE PRC_TEST()-> BEGIN-> SELECT * FROM kkk;-> END // DELIMITER ;grant execute on MyDB.PRC_TEST to test@'%' identified by 'test';flush privileges;b. 查询授予test的权限show grants for test;select * from mysql.procs_priv where User='test';
总结:
1. 如果需要查看用户被授予的权限,就需要从这五个层级来查看被授予的权限。从上到下或从小到上,逐一检查各个层级被授予的权限。
2. grant create routine, alter routine, select, create, insert, update, delete, execute on ….
3. 如果客户端无法连接到服务器,则查看user表中的host项是否为'%',并且已经授权了
权限
用户
层级
数据
数据库
服务
服务器
测试
全局
存储
登陆
子程序
账号
a.
查询
客户
客户端
密码
表层
登录
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
闵行区智能软件开发订制价格
正能量网络技术公司怎么样
国防军工单位数据库
什么地方可以查服务器
济宁网络技术公司
光伏电站网络安全预防措施
浪潮服务器网口特点
前端后端数据库最好搭配
贵州博浩网络技术有限公司
网警介入停服务器
南京市秦淮区张丹网络技术
山东金鹰美乐网络技术
进销存软件开发要多久
武汉软件开发厂家
天津 二级数据库 考点
计算机网络安全行业
阿里云服务器访问路径
为什么要做手机云端服务器
奇葩说中关于网络安全的辩题
黄彦林网络安全
小白数据库旧版
进入黄金鹅服务器
安徽商城软件开发定做
我的世界元宇宙服务器
M9软件开发
git服务器端口
网络安全素质教育都考什么
国际服务器选择哪个好
数据开发和数据库开发一样吗
打印服务器电路