mysql授权、启动、启动服务常用命令
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,一、 四种启动方式:1、mysqld启动mysql服务器: ./mysqld --defaults-file=/etc/my.cnf --user=root客户端连接: mysql --default
千家信息网最后更新 2025年11月08日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、24、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安全错误
数据库的锁怎样保障安全
数据库隐藏的内容怎么删除
oracle 附加数据库
数据库结构类型
河南ai边缘计算服务器虚拟主机
软件开发见习第一周考核
惠普服务器驱动
服务器和宝塔
蔡甸区网络安全维护
网络安全原则之一
巴中人网络安全吗
安全应用服务器地址
欧盟SCIP数据库网址
数字录音系统服务器
明光自动化软件开发技术怎么样
怎样关闭服务器的安全配置
软件开发公司的质量保证能力
寻仙不绑定服务器可以吗
fifapl3韩服数据库
关于规范促进网络安全竞赛
保山新华互联网科技收费
标准网络技术服务系统
山东恒宇网络技术有限公司
联通代理服务器和端口
数据库维护说明怎么写
软件开发劳动合同书
网站把封了服务器IP
宝信软件开发了哪些软件
网络安全法四十四条处罚案例
上网代理服务器软件
附魔服务器