
MySQL 是许多应用程序关键的一部分,它运行在各种 Linux 系统上。但是,由于 MySQL 服务器需要对数据库进行修改,所以它必须以 root 用户的身份运行。这样的做法很容易被滥用,因此,我们需要采取一些措施来限制 MySQL 服务器的特权。本文介绍一些降低 MySQL 帐户权限的 Linux 实用技巧。
1. 使用 MySQL 的 –skip-grant-tables 参数来限制权限
当需要进行紧急修复时,可以使用 MySQL 的 –skip-grant-tables 参数来暂时禁用所有 MySQL 帐户的密码并禁止所有外部连接。要使用此设置,请在启动 mysqld 守护程序时指定此参数,如下所示:
“`
root# mysqld –skip-grant-tables &
“`
此选项会将权限降低到更低限度,并允许您以 root 用户身份连接到 MySQL 服务器,而无需知道任何密码。
2. 使用 MySQL 的 GRANT 命令来授权访问
如果我们要向 MySQL 添加新用户并限制其权限,则可以使用 MySQL 的 GRANT 命令来实现。该命令使用以下语法:
“`
GRANT ON TO @ IDENTIFIED BY ”;
“`
使用此命令可以使我们授权用户访问 MySQL 数据库,并指定密码以限制用户访问权限。请确保使用最少的权限来授予用户访问权限。
3. 限制数据库服务器访问权限
我们可以限制 MySQL 数据库服务器的访问权限,以便只允许少数可信的 IP 地址连接到该服务。为此,我们可以使用 iptables 或防火墙规则来实现。以下是一个 iptables 规则示例,用于将访问 MySQL 数据库的流量限制为特定的 IP 地址段:
“`
[root@localhost ~]# iptables -A INPUT -p tcp –dport 3306 -s 192.168.2.0/24 -j ACCEPT
“`
此规则将允许来自 IP 地址为 192.168.2.0/24 的客户端连接到 MySQL 服务器。
4. 禁用远程连接
如果您不需要在远程位置进行 MySQL 连接,则可以禁用远程连接。在大多数情况下,MySQL 服务器只需要在本地主机上运行,并且该限制可以通过 edit /etc/mysql/my.cnf 配置文件中的 bind-address 配置选项来实现。将 bind-address 设置为 127.0.0.1 将使 MySQL 仅接受本地主机的连接,并禁用远程连接。
“`
[mysqld]
bind-address = 127.0.0.1
“`
5. 避免使用 root 用户与 MySQL 连接
在 MySQL 的默认设置中,root 用户是具有完全管理权限的默认帐户。因此,当使用 root 用户与 MySQL 进行连接时,其权限将非常高,并且可能会被滥用。因此,应该尽量避免使用 root 用户与 MySQL 进行连接。如果必须使用 root 用户进行连接,则应该使用以下语法:
“`
mysql -u root -p
“`
此命令将提示您输入 root 用户的密码,从而可以限制 root 用户在连接 MySQL 时的特权。
结论:
相关问题拓展阅读:
- linux 怎样看mysql的状态
linux 怎样看mysql的状态
运行中的mysql状态查看
(1)QPS(每秒Query量)
QPS
=
Questions(or
Queries)
/
seconds
mysql
>
show
global
status
like
‘Question%’;
(2)TPS(每秒事务量)
TPS
=
(Com_commit
+
Com_rollback)
/
seconds
mysql
>
show
global
status
like
‘Com_commit’;
mysql
>
show
global
status
like
‘Com_rollback’;
(3)key
Buffer
命中率
mysql>show
global
status
like
‘key%’;
key_buffer_read_hits
=
(1-key_reads
/
key_read_requests)
*
100%
key_buffer_write_hits
=
(1-key_writes
/
key_write_requests)
*
100%
(4)InnoDB
Buffer命中率
mysql>
show
status
like
‘innodb_buffer_pool_read%’;
innodb_buffer_read_hits
=
(1
–
innodb_buffer_pool_reads
/
innodb_buffer_pool_read_requests)
*
100%
(5)Query
Cache命中率
mysql>
show
status
like
‘Qcache%’;
Query_cache_hits
=
(Qcahce_hits
/
(Qcache_hits
+
Qcache_inserts
))
*
100%;
(6)Table
Cache状态量
mysql>
show
global
status
like
‘open%’;
比较
open_tables
与
opend_tables
值
(7)Thread
Cache
命中率
mysql>
show
global
status
like
‘Thread%’;
mysql>
show
global
status
like
‘Connections’;
Thread_cache_hits
=
(1
–
Threads_created
/
connections
)
*
100%
(8)锁定状态
mysql>
show
global
status
like
‘%lock%’;
Table_locks_waited/Table_locks_immediate=0.3%
如果这个比值比较大的话,说明表锁造成的阻塞比较严重
Innodb_row_lock_waits
innodb行锁,太大可能是间隙锁造成的
(9)复制延时量
mysql
>
show
slave
status
查看延时时间
(10)
Tmp
Table
状况(临时表状况)
mysql
>
show
status
like
‘Create_tmp%’;
Created_tmp_disk_tables/Created_tmp_tables比值更好不要超过10%,如果Created_tmp_tables值比较大,
可能是排序句子过多或者是连接句子不够优化。
linux中mysql降权查看的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux中mysql降权查看,降低 MySQL 权限:Linux 下的实用技巧,linux 怎样看mysql的状态的信息别忘了在本站进行查找喔。
香港服务器首选树叶云,2H2G首月10元开通。
树叶云(www.IDC.Net)提供简单好用,价格厚道的香港/美国云服务器和独立服务器。IDC+ISP+ICP资质。ARIN和APNIC会员。成熟技术团队15年行业经验。
文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/190407.html<