本文最后更新于 153 天前,其中的信息可能已经有所发展或是发生改变。
在 MySQL 数据库中,查看用户信息通常涉及到访问系统数据库中的用户表。在 MySQL 5.7 及更高版本中,用户信息存储在 mysql
数据库的 user
表中。以下是一些查看 MySQL 用户的方法:
使用 SQL 查询查看用户
#登录到 MySQL:首先,你需要以具有足够权限(如 root 用户)的身份登录到 MySQL 服务器。
mysql -u root -p
#系统会提示你输入 root 用户的密码。
#查询用户表:
#登录后,你可以执行以下 SQL 查询来查看所有用户:
SELECT User, Host FROM mysql.user;
#这将列出所有用户及其对应的主机名(即用户可以从哪些主机连接到 MySQL 服务器)。
在 MariaDB 中,创建新用户、设置密码以及授予数据库所有权(或特定权限)
通常涉及几个步骤。以下是如何执行这些操作的指南:
- 登录到 MariaDB:
首先,你需要以具有足够权限(如root
用户)的身份登录到 MariaDB 服务器。mysql -u root -p
系统会提示你输入root
用户的密码。 - 创建新用户:
使用CREATE USER
语句来创建名为superset
的新用户,并为其设置密码 。注意,出于安全考虑,通常建议使用更复杂的密码。CREATE USER 'superset'@'%' IDENTIFIED BY '密码';
这里的'%'
表示用户可以从任何主机连接到 MariaDB 服务器。如果你希望限制用户只能从特定主机连接,可以将'%'
替换为具体的 IP 地址或主机名。 - 创建数据库(如果尚未创建):
如果数据库TEMP
还不存在,你需要先创建它。CREATE DATABASE TEMP;
- 授予权限:
使用GRANT
语句来授予superset
用户对TEMP
数据库的所有权(或特定权限)。所有权通常意味着用户具有对该数据库的所有权限,包括创建表、插入数据、更新数据和删除数据等。GRANT ALL PRIVILEGES ON TEMP.* TO 'superset'@'%';
这里的ALL PRIVILEGES
表示授予所有权限,TEMP.*
表示TEMP
数据库中的所有对象(表、视图等),'superset'@'%'
指定了用户和主机。 - 刷新权限:
虽然 MariaDB 通常会自动刷新权限,但出于习惯,你可以执行FLUSH PRIVILEGES
语句来确保权限更改立即生效。FLUSH PRIVILEGES;
- 验证:
你可以使用SHOW GRANTS
语句来验证superset
用户的权限。SHOW GRANTS FOR 'superset'@'%';
这将显示superset
用户被授予的所有权限。 - 退出 MariaDB:
完成操作后,你可以使用exit
或quit
命令退出 MariaDB 客户端。
exit;
请确保在实际环境中使用强密码,并根据安全最佳实践配置用户权限。如果你将用户配置为可以从任何主机连接,请确保你了解这带来的安全风险,并考虑使用防火墙或其他安全措施来限制访问。
开放远程访问
vim /etc/mysql/mysql.conf.d/mysqld.cnf/50-server.cnf
或者
vim /etc/mysql/mariadb.conf.d/50-server.cnf
把这一行进行注释,再重启mysql就行了
sudo service mysqld restart