MySQL登陆及配置

一、mysql用户登录

mysql –u用户名 [–h主机名或者IP地址] –p密码

说明:用户名是你登录的用 户,主机名或者IP地址为可选项,如果是本地连接则不需要,远程连接需要填写,密码是对应用户的密码。

注意:

1. 该命令是在Windows命令行窗口下执行,而不是MySQL的命令行;

2.输入-p 后可以直接跟上密码,也可以按回车,会提示你输入密码,二者都是相同的效果;

3. –p密码选项不 一定是要在最后;

4. –u、-h、-p后无空格。

二、mysql创建用户

mysql> grant all privileges on mq.* to lou@localhost identified by '1234';

或者分开执行:

命令: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';

四.设置与更改用户密码

命令: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的权限,只能连库,啥也不能干

 

另:修改完用户权限最好执行下flush privileges 命令,本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。MySQL用户数据和权限有修改后,希望在"不重启MySQL服务"的情况下直接生效,那么就需要执行这个命令。通常是在修改ROOT帐号的设置后,怕重启后无法再登录进来,那么直接flush之后就可以看权限设置是否生效。而不必冒太大风险。

转载于:https://www.cnblogs.com/dreamyu/p/6414290.html

<think>嗯,用户问的是如何在Linux系统中配置MySQL支持远程登录。我需要先回忆一下相关的步骤,确保信息正确。首先,用户可能需要修改MySQL配置文件,通常是my.cnf,把绑定的地址从127.0.0.1改成0.0.0.0,这样MySQL就能监听所有外部连接了。不过具体路径可能根据不同的Linux发行版和MySQL版本有所不同,比如Ubuntu可能在/etc/mysql/mysql.conf.d/mysqld.cnf,而CentOS可能在/etc/my.cnf或者/etc/mysql/my.cnf。这点需要说明清楚,避免用户找不到文件。 接下来是授权用户远程访问。用户可能需要用GRANT命令给特定用户授权,允许从特定IP或者所有IP访问。这里要注意MySQL 5.7和8.0在授权命令上的区别,比如是否需要先创建用户再授权,或者是否可以使用IDENTIFIED BY直接在GRANT语句中设置密码。比如,在5.7中可能可以一条GRANT语句搞定,而8.0可能需要分开创建用户和授权。同时,授权后需要执行FLUSH PRIVILEGES,这个步骤不能漏掉,否则更改不会立即生效。 然后要考虑防火墙的问题。如果系统有防火墙,比如ufw或者firewalld,需要开放3306端口。用户可能不知道如何操作,需要给出具体的命令,比如ufw allow 3306或者firewall-cmd的相关指令。此外,SELinux也可能阻止访问,可能需要临时关闭或者调整策略,但这点可能比较复杂,用户可能需要进一步的指导,或者建议查阅相关资料。 最后,测试远程连接,可以用telnet或者mysql客户端,比如mysql -h 服务器IP -u 用户名 -p。如果连接不上,可能需要检查各个步骤是否正确,比如配置文件是否修改,权限是否刷新,防火墙是否开放等等。 用户提供的引用中提到,root用户通常不提供给开发者,所以应该建议创建一个新用户并授权,而不是直接使用root。比如引用[1]里提到“一般 root 用户不会提供给开发者”,所以步骤里应该包括创建用户的命令,比如CREATE USER和GRANT。同时,引用[2]和[3]可能涉及到安装MySQL 5.7的步骤,但用户的问题是关于远程登录配置,所以可能不需要涉及安装部分,但需要确保用户已经安装了正确版本的MySQL,并且知道如何启用仓库,比如sudo yum-config-manager --enable mysql57-community,这可能是在安装时的步骤,但配置远程访问时可能不需要,除非用户尚未安装。 另外,需要注意安全性问题,比如授权所有IP(使用%作为主机名)可能会带来风险,应该建议用户尽量限制IP范围。如果用户需要更安全的方法,可以建议使用具体的IP或者子网。 总结步骤应该是:1. 修改配置文件绑定地址;2. 授权用户远程访问;3. 处理防火墙和SELinux;4. 测试连接。每个步骤都要给出具体的命令和可能遇到的问题,比如配置文件的位置差异,MySQL版本差异导致的授权语法不同,以及防火墙设置的不同方法。同时,引用相关的参考资料,比如用户提供的引用[1]、[2]、[3],其中引用[1]和[3]详细说明了授权步骤,而引用[2]可能涉及安装和仓库启用,但用户可能已经安装好了,所以主要参考授权部分。</think>### Linux系统MySQL远程登录配置方法 #### 一、修改MySQL配置文件 1. 找到MySQL配置文件路径: - **Ubuntu/Debian**:`/etc/mysql/mysql.conf.d/mysqld.cnf` - **CentOS/RHEL**:`/etc/my.cnf` 或 `/etc/mysql/my.cnf` 2. 修改绑定地址: 将 `bind-address = 127.0.0.1` 改为 `bind-address = 0.0.0.0`,允许所有IP访问[^1]。 #### 二、授权远程访问用户 1. 登录MySQL控制台: ```bash mysql -u root -p ``` 2. 创建用户并授权(以用户`remote_user`和IP`192.168.1.100`为例): ```sql -- MySQL 5.7及以下版本 GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'192.168.1.100' IDENTIFIED BY 'password' WITH GRANT OPTION; -- MySQL 8.0及以上版本(需分步操作) CREATE USER 'remote_user'@'192.168.1.100' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'192.168.1.100'; ``` 3. 刷新权限: ```sql FLUSH PRIVILEGES; ``` #### 三、防火墙配置 1. **ufw防火墙**(Ubuntu): ```bash sudo ufw allow 3306/tcp sudo ufw reload ``` 2. **firewalld**(CentOS/RHEL): ```bash sudo firewall-cmd --permanent --add-port=3306/tcp sudo firewall-cmd --reload ``` #### 四、测试远程连接 使用客户端工具(如MySQL Workbench)或命令行测试: ```bash mysql -h <服务器IP> -u remote_user -p ``` #### 注意事项 - 若使用`%`代替IP(如`'remote_user'@'%'`),表示允许所有IP访问,但需注意安全风险。 - SELinux可能阻止访问,需临时关闭或调整策略: ```bash setenforce 0 # 临时关闭 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值