MySQL账户安全设置

一般来说,安装完MySQL后,默认的用户是root,密码123456,外网不能访问。

有时候也希望在外网访问,则可以添加一个账户。建议不要用root。

如下表,存在安全问题:

mysql> select host,user,password from user;
+-----------+------+-------------------------------------------+
| host      | user | password                                  |
+-----------+------+-------------------------------------------+
| localhost | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| %         | root | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| ::1       | root |                                           |

host里的%代表不限制主机IP。

localhost/root,::1/root都是本地使用,密码简单点无所谓,反正外网访问不了。但是,有一条:
%/root这个就有风险了,在外网直接使用root就访问了,这很不安全。

我们可以将这个用户名和密码都改掉,例如:

mysql> select host,user,password from user;
+-----------+-------+-------------------------------------------+
| host      | user  | password                                  |
+-----------+-------+-------------------------------------------+
| localhost | root  | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| %         | test  | *6B7F7FD369057C9CE8A3521CB559898302E3286E |
| ::1       | root  |                                           |

这样在外网使用test/密码 登录即可。

新增或更改方法:
1、使用可视化软件:例如SQLyog,可以编辑用户。
2、命令行:
新增:

# 新增用户test,密码123456,权限:所有;管理所有数据库及表;支持外网。
grant select,insert,update,delete on *.* to test@'%' identified by '123456';

# 限制主机和数据库
grant select,insert,update,delete on testdb.* to test2@'192.168.36.100' identified by '123456';

编辑:

use mysql;
select host,user,password from user;
update user set user='test' where localhost='%';
update user set password=PASSWORD("new password")  where user='test';
FLUSH PRIVILEGES;
时间: 2024-10-30 02:52:13

MySQL账户安全设置的相关文章

MySQL中设置prompt实现信息提示的教程

然后来看看默认情况下的样子 在看看 使用prompt参数后的样子 然后看看黑科技的玩法 好了 现在来说说最后彩色显示的方法,默认在使用--prompt参数后是显示不出彩色的,为了显示彩色,我们需要借助系统上功能才可以的, [root@GCE-Node1_www.dwhd.org ~]# awk '/mariadb/' .bashrc alias mysql=$(echo -e '/usr/local/mariadb-galera/bin/mysql -uroot -p****** -h127.0

数据-Mysql中设置表的外键的时候报错

问题描述 Mysql中设置表的外键的时候报错 这个是原句子: ALTER TABLE emp ADD CONSTRAINT id_fk FOREIGN KEY (deptno) REFERENCES Dept (deptno); 就是想把emp表的deptno设置为外键,该列的数据引用Dept表的主键列deptno的数据.然后,报错信息如下: Cannot add or update a child row: a foreign key constraint fails (emp.#sql-1a

navicat for mysql在设置字段值时空和null有什么区别

问题描述 navicat for mysql在设置字段值时空和null有什么区别 解决方案 ""也是一个值.举例子来说,你的界面提供用户输入文本,用户保留文本框为空,那么就是"",这说明用户提交了数据,数据的值是"",但是用户从来没有提交过数据,那么就是null,如果你需要区分这两者,那么要特别注意. 解决方案二: null不等于空啊 空 是有类型的 null没有类型

mysql字段设置某种情况下的特殊值

问题描述 mysql字段设置某种情况下的特殊值 是这样的,上传视频转码成功后url设置到videochangeurl字段,但是有不成功的情况,现在前辈想设置成false,这个字段是varchar类型的,而且前端页面判断是否转码失败jstl的话eq 'false',看着也奇怪,我心里觉得设置false不适合,但是又不好反抗前辈,就算反抗人家也根本不理会你,本着对自己负责,学习的态度,问问大家,这种情况怎么处理好. ps:看了前两个回答,补充下,如果不上传视频的话,没视频的话为为空的,要区别开没不上

mysql设置-mysql如何设置当前日期

问题描述 mysql如何设置当前日期 创建mysql下的表格: CREATE TABLE member( mid VARCHAR(50) PRIMARY KEY, password VARCHAR(32) NOT NULL , name VARCHAR(30) NOT NULL , address VARCHAR(200) NOT NULL , telephone VARCHAR(100) NOT NULL , zipcode VARCHAR(6) NOT NULL , lastdate tim

MySQL数据库设置远程访问权限方法小结_Mysql

MySQL基础知识第一期,如何远程访问MySQL数据库设置权限方法总结,讨论访问单个数据库,全部数据库,指定用户访问,设置访问密码,指定访问主机. 1,设置访问单个数据库权限 复制代码 代码如下: mysql>grant all privileges on test.* to 'root'@'%'; 说明:设置用户名为root,密码为空,可访问数据库test 2,设置访问全部数据库权限 复制代码 代码如下: mysql>grant all privileges on *.* to 'root'

深入Mysql字符集设置分析_Mysql

基本概念 • 字符(Character)是指人类语言中最小的表义符号.例如'A'.'B'等: • 给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符,这一数值就是字符的编码(Encoding).例如,我们给字符'A'赋予数值0,给字符'B'赋予数值1,则0就是字符'A'的编码: • 给定一系列字符并赋予对应的编码后,所有这些字符和编码对组成的集合就是字符集(Character Set).例如,给定字符列表为{'A','B'}时,{'A'=>0, 'B'=>1}就是一个字符集: •

MySQL远程访问设置终极方法_Mysql

数据库对于服务端开发人员来说,几乎就是左膀右臂.几乎每一个服务端开发人员都要和数据库打交道.而MySQL又以其开源免费,小巧玲珑,简单易用,功能强大占据中国数据库使用份额的半壁江山.从去年接触到Vagrant以来,Vagrant以其方便易用深深吸引了D瓜哥.为了尽可能地和生产环境保持尽可能的一致性,减少不必要的问题的发生,Vagrant+Ubuntu+MySQL几乎是绝配. MySQL允许远程访问的设置 1.注释bind-address = 127.0.0.1. 复制代码 代码如下: >cd /

mysql max_allowed_packet 设置过小导致记录写入失败

mysql max_allowed_packet 设置过小导致记录写入失败 mysql根据配置文件会限制server接受的数据包大小. 有时候大的插入和更新会受max_allowed_packet 参数限制,导致写入或者更新失败. 查看目前配置 show VARIABLES like '%max_allowed_packet%'; 显示的结果为: +--------------------+---------+ | Variable_name      | Value   | +--------