修改MYSQL默认账户密码
- 格式:docx
- 大小:14.19 KB
- 文档页数:2
phpmyadmin默认用户名密码一、一般默认情况搭建本地网站的phpstudy软件,点击进入管理MYSQL数据库一般情况下:本地的phpmyadmin用户名是: root 密码为:root 或为空(一般如果PhpMyAdmin跟空间位于同一主机下的话,大部分用户名跟密码是共用的,也就是空间的用户名跟密码与PhpMyAdmin的是同一个,如果是在不同的主机下的话,可能就不同了。
)二、直接更改1、my.ini里面找到mysqld配置项[mysqld]port=3306下面添加 skip-grant-tables 之后可跳过密码输入进入命令端2、之后更改密码输入:update er set password=password("新密码") where user=root;3、改完密码后,删除my.ini里面添加的skip-grant-tables 就可以了三、phpmyadmin不需要密码登录的设置方法:下了最新版的phpmyadmin,装上后输入用户名root然后点登录,因为我在本地,所以root没有密码,结果老是报访问被拒绝的错误.看了下权限的设置没什么问题呀,网上也没找到好的答案,与是根踪代码,原来在配置文件config.default.php里面有句:$cfg['Servers'][$i]['AllowNoPasswordRoot'] = false;在libraries/common.inc.php的886行对他进行了验证,如果他是false的话,用户名如果是root用户,则密码不能为空,否则不进行验证,他默认情况下就是flase,把他改成true就行了.我想这可能是他为了安全着想吧,让人一定设root密码,呵呵,不过我认为在测试的时候有点不方便,一般本地的root用户都是空的.其实他可以把提示语句改下,说是你的root密码为空,以当前的安全级别不允许登录,可以到XXX地方把设置改过来,这样可能会明白些,单一个访问被拒绝太难找原因了.默认phpmyadmin空密码登录是被禁止的,这一行为主要通过配置文件libraries/config.default.php中的两个全局变量控制,即代码如下:1 2 $cfg['Servers'][$i]['nopassword'] = false; $cfg['Servers'][$i]['AllowNoPassword'] = false;只要修改这两个变量,设定为True,phpmyadmin就会允许以空密码方式登录,即修改libraries/config.default.php中的代码如下:1 2 $cfg['Servers'][$i]['nopassword'] = true; $cfg['Servers'][$i]['AllowNoPassword'] = true;同时将代码如下:1 $cfg['Servers'][$i]['password'] = '';设置数据库教程连接密码设为空密码,即告成功.四、PHP设置phpMyAdmin设置登录密码phpMyAdmin直接与MYSQL相连,因此安全性来说非常关键,有的朋友为了图方便,根本没有为phpMyAdmin设置一个登录密码,这样很危险,若这个地址被别人知道,那你的MYSQL就完了。
安装mysql8.0.11以及修改root密码、连接navicatformysql。
最近在学习node.js,少不得要跟数据库打交道,于是打算安装⼀个数据库软件,在mongedb和mysql之间选择了mysql。
作为⼀个数据库新⼈不敢评论孰好孰坏,最后选择mysql纯属因为公司在⽤mysql,⽽且有个数据库⼤神可以指导学习。
按照⽹上的教程,可能是新版本的原因,关于root密码重置总是有⼀些问题,所以结合⾃⼰的安装过程就有了此篇博客,好了,废话不多说,下⾯进⼊正题。
1.1. 下载:官⽹下载zip包,我下载的是64位的:下载zip的包:下载后解压:(解压在哪个盘都可以的)我放在了这⾥ E:\web\mysql-8.0.11-winx64 ,顺便缩短了⽂件名,所以为 E:\web\mysql-8.0.11。
1.2. 配置环境变量:进⼊计算机--⾼级系统设置--⾼级--环境变量然后新建系统变量变量值改为⾃⼰mysql解压的路径变量名:MYSQL_HOME变量值:E:\web\mysql-8.0.11path⾥添加:%MYSQL_HOME%\bin;(分号不要忘记)1.3. ⽣成data⽂件:以管理员⾝份运⾏cmd程序--输⼊cmd 找到cmd.exe 右键以管理员⾝份运⾏进⼊E:\web\mysql-8.0.11\bin 下执⾏命令:mysqld --initialize-insecure --user=mysql 在E:\web\mysql-8.0.11⽬录下⽣成data⽬录1.4. 启动服务:执⾏命令:net start mysql 启动mysql服务,若提⽰:服务名⽆效...(请看步骤:1.5);1.5. 解决启动服务失败(报错):提⽰:服务名⽆效解决⽅法:执⾏命令:mysqld -install 即可(不需要my.ini配置⽂件注意:⽹上写的很多需要my.ini配置⽂件,其实不需要my.ini配置⽂件也可以,我之前放置了my.ini⽂件,反⽽提⽰服务⽆法启动,把my.ini删除后启动成功了)若出现提⽰“服务正在启动或停⽌中,请稍后⽚刻后再重试⼀次”,需要去资源管理器中把mysql进程全结束了,重新启动即可。
mysql-8.0.11-winx64.zip安装教程详解下载zip安装包:环境:Windows 10⼀,安装 1.1,解压zip包到安装⽬录 ⽐如我的安装⽬录是:C:\Program Files\MySQL 1.2,配置⽂件 在Windows系统中,配置⽂件默认是安装⽬录下的 my.ini ⽂件(或my-default.ini),部分配置需要在初始安装时配置,⼤部分也可以在安装完成后进⾏更改。
当然,极端情况下,所有的都是可以更改的。
我们发现解压后的⽬录并没有my.ini⽂件,没关系可以⾃⾏创建。
在安装根⽬录下添加 my.ini,⽐如我这⾥是:C:\ProgramFiles\MySQL\my.ini,写⼊基本配置:[mysqld]# 设置3306端⼝port=3306# 设置mysql的安装⽬录basedir=C:\Program Files\MySQL# 设置mysql数据库的数据的存放⽬录datadir=E:\database\MySQL\Data# 允许最⼤连接数max_connections=200# 允许连接失败的次数。
这是为了防⽌有⼈从该主机试图攻击数据库系统max_connect_errors=10# 服务端使⽤的字符集默认为UTF8character-set-server=utf8# 创建新表时将使⽤的默认存储引擎default-storage-engine=INNODB# 默认使⽤“mysql_native_password”插件认证default_authentication_plugin=mysql_native_password[mysql]# 设置mysql客户端默认字符集default-character-set=utf8[client]# 设置mysql客户端连接服务端时默认使⽤的端⼝port=3306default-character-set=utf8注意,⾥⾯的 basedir 是我本地的安装⽬录,datadir 是我数据库数据⽂件要存放的位置,各项配置需要根据⾃⼰的环境进⾏配置。
修改用户密码的sql语句要修改用户密码的SQL语句取决于所使用的数据库管理系统。
以下是几个常见的数据库管理系统的示例:MySQL:UPDATE usersSET password = 'new_password'WHERE username = 'user1';这里假设有一个名为"users"的表,其中包含用户名和密码列。
你可以将"username = 'user1'"替换为要更改密码的用户的条件。
Oracle:ALTER USER user1 IDENTIFIED BY new_password;这里的"user1"是要更改密码的用户名,"new_password"是新密码。
Microsoft SQL Server:ALTER LOGIN user1 WITH PASSWORD = 'new_password';这里的"user1"是要更改密码的登录名,"new_password"是新密码。
PostgreSQL:ALTER USER user1 WITH PASSWORD 'new_password';这里的"user1"是要更改密码的用户名,"new_password"是新密码。
请注意,这些示例是基于常见的数据库管理系统,实际情况可能会因数据库版本和配置而有所不同。
在实际使用时,请参考相关数据库管理系统的文档和语法规范。
另外,确保使用安全的方法来存储和处理密码,例如使用哈希函数和加盐。
MySQL初始化root密码以及root密码忘记解决⽅法⼀、MySQL初始化root密码mysql默认root⽤户没有密码,输⼊mysql –u root 进⼊mysql1、进⼊mysql数据库use mysql;2、初始化root密码mysql>update user set password=PASSWORD('123456') where User='root';(补充:授权请戳)⼆、root密码忘记解决⽅法(Windows环境)1、确保MySQL服务停⽌例如,在DOS窗⼝下输⼊net stop mysql5或net stop mysql2、打开第⼀个cmd窗⼝,进⼊MySQL安装⽬录下的bin⽬录例如,D:\mysql-5.5.35-win32\bin>3、跳过权限安全检查,MySQL服务运⾏起来后,不⽤输⼊密码就能进⼊数据库例如,D:\mysql-5.5.35-win32\bin>mysqld –defaults-file=”D:\mysql-5.5.35-win32\my.ini” –console –skip-grant-tables4、打开第⼆个cmd窗⼝,连接MySQL输⼊命令:mysql -uroot -p出现 Enter password: 直接回车5、使⽤命令切换到mysql数据库:use mysql;6、使⽤命令更改root密码:UPDATE user SET Password=PASSWORD('在此输⼊新密码') where USER='root';7、刷新权限:FLUSH PRIVILEGES;8、退出:quit;9、关闭上⾯打开的两个cmd窗⼝,重新启动MySQL服务。
mysqlERROR1044(4...1. 问题描述:在MySQL控制台下创建数据库出现以下信息:mysql> CREATE DATABASE python;ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'python'2. 解决⽅法:执⾏以下命令进⼊控制台:mysql --user=root -p输⼊root⽤户的密码即可进⼊mysql控制台:创建数据库:create database python;显⽰所有数据库:show databases;如下: @:~$ mysql --user=root -pEnter password:Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 4Server version: 5.6.17 MySQL Community Server (GPL)Copyright (c) 2000, 2014,Oracleand/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql> create database python;Query OK, 1 row affected (0.00 sec)mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || mysql || performance_schema || python || test |+--------------------+5 rows in set (0.02 sec)mysql>3. OK,以上⽅法不是最好的,但却是简单可⾏的,Enjoy it4、⽅法四:这⼏天⽤空密码登录mysql后,然后修改mysql默认密码,使⽤mysql表出现过这个问题,提⽰:ERROR 1044 (42000): Access denied for user ''@'localhost' to database 'mysql'。
mysqld –initialize参数在MySQL数据库中,使用mysqld命令可以启动MySQL服务。
而在mysqld命令中,还有一个常用的初始化参数——`-initialize`,它在MySQL数据库安装过程中起到了重要的作用。
当我们安装MySQL数据库时,需要进行一系列的初始化设置,包括创建系统数据库,设置root用户密码等等。
而`-initialize`参数则是用于自动执行这些初始化过程,并生成一个临时的root用户密码。
使用`-initialize`参数前,我们首先需要确保MySQL服务已经正确安装。
接下来,让我们详细了解一下`-initialize`参数的具体作用及使用方法。
## mysqld –initialize参数的作用`-initialize`参数用于在MySQL数据库首次安装时执行初始化操作。
它会执行以下几个重要的步骤:1. 创建系统数据库:在初始化过程中,MySQL会自动创建一些系统数据库,如mysql、performance_schema等。
这些系统数据库存储着MySQL的关键信息和配置。
2. 设置root用户密码:在初始化过程中,MySQL会生成一个随机的root用户密码,并存储在日志文件中。
我们需要在初始化完成后,通过查看日志文件来获取root用户的临时密码。
3. 创建临时文件:在初始化过程中,MySQL会创建一些必要的临时文件,如错误日志文件等。
通过`-initialize`参数的执行,我们可以省去手动执行这些初始化操作的麻烦和容易出错的步骤,让MySQL数据库的安装更加简便和高效。
## mysqld –initialize参数的使用方法下面是使用`-initialize`参数进行MySQL数据库初始化的步骤:1. 打开命令行终端,进入MySQL的安装目录。
2. 运行以下命令来执行初始化操作:```mysqld --initialize```在执行该命令后,MySQL将会自动进行初始化操作,并在命令行中输出相关的初始化信息。
忘记数据库密码怎么办忘记数据库密码,⽆密码登陆数据库1、打开MySQL⽬录下的my.ini⽂件,在⽂件的最后添加⼀⾏“skip-grant-tables”,保存并关闭⽂件。
(WIN7默认安装,my.ini在C:\ProgramData\MySQL\MySQL Server 5.6)2、重启MySQL服务。
3、通过命令⾏进⼊MySQL的BIN⽬录,输⼊“mysql -u root -p”(不输⼊密码),回车即可进⼊数据库。
(WIN7默认安装,BIN⽬录为:C:\Program Files\MySQL\MySQL Server 5.6\bin)4、执⾏“use mysql;”,使⽤mysql数据库。
5、执⾏“update user set password=PASSWORD("123456") where user='root';”(修改root的密码)6、打开MySQL⽬录下的my.ini⽂件,删除最后⼀⾏的“skip-grant-tables”,保存并关闭⽂件。
7、重启MySQL服务。
8、在命令⾏中输⼊“mysql -u root -p 123456”,即可成功连接数据库。
MySQL中出现Access denied for user 'test'@'localhost' (using password: YES)当数据库出现这种错误时,⼀般是⾃⼰创建⼀个⽤户没有访问权限。
(1)创建⽤户1、⾸先以root登陆,然后创建⽤户2、mysql> insert into er(Host,User,Password) values("localhost","test",password("123456")); 注意:此处的"localhost",是指该⽤户只能在本地登录,不能在另外⼀台机器上远程登录。
一、手动修改1、停止MySQL服务执行:/etc/init.d/mysql stop,你的机器上也不一定/etc/init.d/mysql也可能是/etc/init.d/mysqld 2、跳过验证启动MySQL/usr/local/mysql/bin/mysqld_safe --skip-grant-tables >/dev/null 2>&1 &注:如果mysqld_safe的位置如果和上面不一样需要修改成你的,如果不清楚可以用find命令查找。
3、重置密码等一会儿,然后执行:/usr/local/mysql/bin/mysql -u root mysql出现mysql提示符后输入:update user set password = Password('要设置的密码') where User = 'root';回车后执行:flush privileges;(重要) 刷新MySQL系统权限相关的表。
再执行:exit; 退出。
4、重启MySQL杀死MySQL进程:killallmysqld重启MySQL:/etc/init.d/mysql start二、如果是误删了root用户,则使用下面的语句创建root用户:insert into user setHost='localhost',User='root',Password=Password('111111'),select_priv='y',insert_priv='y',update_priv='y',Alter_priv='y',delete_priv='y',create_priv='y',drop_priv='y',reload_priv='y',shutdown_priv ='y',Process_priv='y',file_priv='y',grant_priv='y',References_priv='y',index_priv='y',creat e_user_priv='y',show_db_priv='y',super_priv='y',create_tmp_table_priv='y',Lock_tables_ priv='y',execute_priv='y',repl_slave_priv='y',repl_client_priv='y',create_view_priv='y',sho w_view_priv='y',create_routine_priv='y',alter_routine_priv='y',event_priv='y',trigger_priv ='y';三、如果是忘记了root用户的密码,则使用下面的语句修改root密码:update user set Password=Password('111111') where User='root';。
【安全测试】MySQL安全加固要点1.修改root⽤户⼝令,删除空⼝令2.删除默认数据库和数据库⽤户3.改变默认mysql管理员帐号4.关于密码的管理5.使⽤独⽴⽤户运⾏msyql6.禁⽌远程连接数据库7.限制连接⽤户的数量8.⽤户⽬录权限限制9.命令历史记录保护10.禁⽌MySQL对本地⽂件存取11.MySQL服务器权限控制12.使⽤chroot⽅式来控制MySQL的运⾏⽬录13.关闭对⽆关的Web程序访问的⽀持14.数据库备份策略15. Mysqld安全相关启动选项rmation_schema 安全1.修改root⽤户⼝令,删除空⼝令缺省安装的MySQL的root⽤户是空密码的,为了安全起见,必须修改为强密码,所谓的强密码,⾄少8位,由字母、数字和符号组成的不规律密码。
使⽤MySQL⾃带的命令mysaladmin修改root密码,同时也可以登陆数据库,修改数据库mysql下的user表的字段内容,修改⽅法如下所⽰:# /usr/local/mysql/bin/mysqladmin -u root password “upassword” //使⽤mysqladmin#mysql> use mysql;#mysql> update user set password=password(‘upassword’) where user=’root’;#mysql> flush privileges; //强制刷新内存授权表,否则⽤的还是在内存缓冲的⼝令2.删除默认数据库和数据库⽤户⼀般情况下,MySQL数据库安装在本地,并且也只需要本地的php脚本对mysql进⾏读取,所以很多⽤户不需要,尤其是默认安装的⽤户。
MySQL初始化后会⾃动⽣成空⽤户和test库,进⾏安装的测试,这会对数据库的安全构成威胁,有必要全部删除,最后的状态只保留单个root即可,当然以后根据需要增加⽤户和数据库。
MySql安装与配置⽅法(MySQL添加⽤户、删除⽤户与授权)1.安装MySql⽬前MySQL有两种形式的⽂件,⼀个是msi格式,⼀个是zip格式的。
msi格式的直接点击setup.exe就好,按照步骤进⾏。
但是很多⼈下了zip格式的解压发现没有setup.exe,本⼈下载的也是这样的,不知道怎么安装,点哪⾥都没有反应。
只能寻求度娘帮助,然后才了解到,这种⽂件的安装⽅式。
1)将⽂件解压到⾃⼰认为合适的位置。
2)在⽬录下新建⼀个my.ini(⽂件中已经有⼀个mydefault.ini⽂件),新建后会将原来⽂件的作⽤覆盖掉。
在⽂件中粘贴⼀下代码:[mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] #设置3306端⼝ port = 3306 # 设置mysql的安装⽬录 basedir=D:\mysql\mysql-5.6.24-win32 # 设置mysql数据库的数据的存放⽬录 datadir=D:\mysql\mysql-5.6.24-win32\data # 允许最⼤连接数 max_connections=200 # 服务端使⽤的字符集默认为8⽐特编码的latin1字符集 character-set-server=utf8 # 创建新表时将使⽤的默认存储引擎 default-storage-engine=INNODB以上代码标记部分需要修改为⾃⼰的⽬录,也就是解压的⽬录。
3)添加环境变量操作如下:(1)右键单击我的电脑->属性->⾼级系统设置(⾼级)->环境变量点击系统变量下的新建按钮输⼊变量名:MYSQL_HOME输⼊变量值:D:\mysql\mysql-5.6.24-win32#即为mysql的⾃定义解压⽬录。
(2)选择系统变量中的Path点击编辑按钮在变量值中添加变量值:%MYSQL_HOME%\bin注意是在原有变量值后⾯加上这个变量,⽤;隔开,不能删除原来的变量值,4)以管理员⾝份运⾏cmd(⼀定要⽤管理员⾝份运⾏,不然权限不够), 输⼊:cd C:\Program Files\MySQL\MySQL Server 5.6\bin 进⼊mysql的bin⽂件夹(不管有没有配置过环境变量,也要进⼊bin⽂件夹,否则之后启动服务仍然会报错误2) 输⼊mysqld -install(如果不⽤管理员⾝份运⾏,将会因为权限不够⽽出现错误:Install/Remove of the Service Denied!) 安装成功5)启动MySQL服务⽅法⼀:启动服务命令为:net start mysql⽅法⼆:打开管理⼯具服务,找到MySQL服务。
修改数据库密码的sql语句修改数据库密码的 SQL 语句可以使用 ALTER USER 语句,具体语法如下:```ALTER USER username IDENTIFIED BY 'new_password';```其中,username 是要修改密码的用户名,new_password 是你要设置的新密码。
在使用 ALTER USER 语句修改数据库密码时,需要注意以下几点:1. 首先,你需要以有管理员权限的用户登录到数据库系统中。
通常情况下,这个用户是 DBA(数据库管理员)或管理员角色的用户。
2. 然后,你需要找到要修改密码的用户名。
在大多数数据库系统中,可以通过如下的SQL 查询语句来获取所有用户的信息:```SELECT name FROM sysusers; -- SQL ServerSELECT username FROM dba_users; -- OracleSHOW GRANTS FOR user; -- MySQL```将上述语句中的 `user` 替换为你要修改密码的用户名。
3. 接下来,可以使用 ALTER USER 语句来修改密码。
示例代码如下:```ALTER USER username IDENTIFIED BY 'new_password';```将上述代码中的 `username` 替换为你要修改密码的用户名,`new_password` 替换为你要设置的新密码。
请注意,有些数据库系统中,IDENTIFIED BY 语句可能需要更多的参数或选项。
例如,你可能需要提供密码的强度要求,或者设置密码的有效期等等。
请参考相关数据库的官方文档以了解更多细节。
4. 修改密码后,最好立即测试新密码是否可用。
你可以尝试使用新密码登录到数据库系统中,以确保修改成功。
除了使用 ALTER USER 语句修改密码外,还有一些数据库系统提供了其他修改密码的方法。
以前在windows下用的mysql都是通过下载exe格式的安装包来安装使用,今天偶然下到一个免安装版本的,使用了一番,对mysql的启动之类的有了一个重新认识,记录下。
mysql-5.6.16-win32安装步骤(Windows7 32位)1. 下载/downloads/mysql/5.6.html2. 解压MySQL压缩包将以下载的MySQL压缩包解压到自定义目录下,我的解压目录是:"D:\Program Files\MySQL\mysql-5.6.16-win32"将解压目录下默认文件my-default.ini 拷贝一份,改名my.ini复制下面的配置信息到my.ini 保存#如果没有my-default.ini,可自己新建my.ini或者从其他地方中获取#########################################################[client]port=3306default-character-set=utf8[mysqld]port=3306character_set_server=utf8#character_set_server=utf8 一定要这样写;basedir=D:\Program Files\MySQL\mysql-5.6.16-win32#解压目录datadir=D:\Program Files\MySQL\mysql-5.6.16-win32\data#解压目录下data目录,必须为data目录sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES#########################################################3. 添加环境变量操作如下:在path环境变量下加入:D:\Program Files\MySQL\mysql-5.6.16-win32\bin4. 注册windows系统服务将mysql注册为windows系统服务操作如下:1)从控制台进入到MySQL解压目录下的bin 目录下:2)输入服务安装命令:mysqld-nt --install 一定要在mysql指定的路径下执行,比如X:\mysql\binmysqld install MySQL --defaults-file="D:\ProgramFiles\MySQL\mysql-5.6.16-win32\my.ini"#解压目录下修改的my.ini文件安装成功后会提示服务安装成功。
mac 下apache+php+mysql(实践成功)一、启动apache 和设置虚拟访问路径。
mac系统默许已经安装了apachesudo apachectl start启动后,访问应该能看到"It works!"的初始页面,若是对初始页面的内容感到好奇,可以打开"/etc/apache2/",197行可以看到如下代码片段:It works的内容,网上说的之前的版本,是在/Library/WebServer/Documents/这个文件里,这是apache的默许页,我在Yosemite系统中没有发现这个文件,连webserver/documents文件夹都没找见,后来参考了一篇英文说明,才解决了无法访问的问题。
其它帖子都说的不够全面。
也不新。
解决虚拟主机无法访问的英文原文就不帖出来了,英文比较乱,我直接写操作步骤:默许情况下,apache的虚拟主机功能是关闭的,在“/etc/apache2/”中找到下面这行:#Include /private/etc/apache2/extra/将前面的#去掉,然后再打开“/etc/apache2/extra/”,内容修改成类似下面的样子:NameVirtualHost *:8023<VirtualHost *:80>4DocumentRoot "/Users/apple/Sites"5ServerName 6ErrorLog "/Users/apple/Sites/log/"7CustomLog "/Users/apple/Sites/log/" common8<Directory />9Options Indexes FollowSymLinks MultiViews10AllowOverride None11Order deny,allow12Allow from all13</Directory>14</VirtualHost>打开apache配置文件:sudo vim /etc/apache2/编辑apache配置文件:注释掉下面两行前面的##LoadModule userdir_module libexec/apache2/#Include /private/etc/apache2/extra/sudo vim /private/etc/apache2/extra/注释掉下面行前面的##Include /private/etc/apache2/users/*.conf最后你要成立/private/etc/apache2/users/ 若是文件不存在的话,内容依照以下的方式写上:<Directory "/Users/kevin/Sites/">Options Indexes MultiViewsAllowOverride NoneRequire all granted</Directory>sudo vim /private/etc/apache2/users/输入i 插入内容esc 后:wq 保留退出。
MySQL数据库安全配置规范操作1.账号以普通帐户安全运⾏mysqld,禁⽌mysql以root帐号权限运⾏,攻击者可能通过mysql获得系统root超级⽤户权限,完全控制系统。
配置/etc/f[mysql.server]user=mysql补充操作说明直接通过本地⽹络之外的计算机改变⽣产环境中的数据库是异常危险的。
有时,管理员会打开主机对数据库的访问:> GRANT ALL ON *.* TO 'root'@'%';这其实是完全放开了对root的访问。
所以,把重要的操作限制给特定主机⾮常重要:> GRANT ALL ON *.* TO 'root'@'localhost';> GRANT ALL ON *.* TO 'root'@'myip.athome' ;> FLUSH PRIVILEGES;判定条件禁⽌以root账号运⾏mysqld;检测操作检查进程属主和运⾏参数是否包含--user=mysql类似语句:# ps –ef | grep mysqld#grep -i user /etc/f⽤户权限应按照⽤户分配账号,避免不同⽤户间共享账号创建⽤户设定指定ip地址登陆数据库create user vvera@'指定ip地址' identified by 'vv@122';这样就创建了⼀个名为:vvera 密码为:vv@122 的⽤户。
然后登录⼀下。
检测⽅法判定条件不⽤名称的⽤户可以连接数据库;使⽤不同⽤户连接数据库应删除或锁定与数据库运⾏、维护等⼯作⽆关的账号移除匿名账户和废弃的账户DROP USER语句⽤于删除⼀个或多个MySQL账户。
要使⽤DROP USER,必须拥有mysql数据库的全局CREATE USER权限或DELETE 权限。
账户名称的⽤户和主机部分与⽤户表记录的User和Host列值相对应。
MySQL数据库等级保护测评列表评测项评测要求评测⽅法评测记录⾝份鉴别a)应⽤登录的⽤户进⾏⾝份标识和鉴别,⾝份标识具有唯⼀性,⾝份鉴别信息具有复杂度要求并定期更换1)尝试登录数据库,执⾏mysql –u root –p 查看是否提⽰输⼊⼝令鉴别⽤户⾝份2)使⽤如下命令查询账号select user, host FROM er结果输出⽤户列表,查者是否存在相同⽤户名3)执⾏如下语句查询是否存在空⼝令⽤:select * from er where length(password)= 0 or password is null输出结果是否为空4)执⾏如下语句查看⽤户⼝令复杂度相关配置:show variables like ‘validate%’;或 show VARIABLES like “%password”样例:1)⽤户登录数据库时,采⽤⽤户名、⼝令的⽅式进⾏⾝份鉴别2)查询user表,不存在相同的⽤户名3)不存在空⼝令⽤户;4)配置信息:Validate_password_length 8Validate_password_mixed_case_count lValidate_password_number_count lValidate_password policy MEDIUMValidate_password_special_char_count lb)应具有登录失败处理功能,应配置并启⽤结束会话、限制⾮法登录次数和当登录连接超时⾃动退出等相关措施1)询问管理员是否采取其他⼿段配置数据库登录失败处理功能。
2)执⾏show variables like %max_connect_errors%”;或核查f⽂件,应设置如下参数:max_connect_errors=1003) show variables like “%timeout%”,查看返回值样例:1)MySQL 数据库采⽤第三⽅管理软件,且第三⽅管理软件设置登录失败锁定次数1/52)3)数据库管理系统本地配置了参数max_connect_errors=100,Wait_timeout=28800,如果mysql服务器连续接收到了来⾃于同⼀个主机的请求,且这些连续的请求全部都没有成功的建⽴连续就被断开了,当这些连续的请求的累计值⼤于max_connect_errors的设定值,mysql服务器就会阻⽌这台主机后续的所有请求。
修改MYSQL默认账户密码
在安装完MySQL数据库后,必须修改数据库的默认账号密码,以保证数据库的安全性,以下为操作步骤:
#mysql
mysql> use mysql;
Database changed
mysql> select user,password,host from user;
+-------+-------------------------------------------+-----------------+
| user | password | host |
+-------+-------------------------------------------+-----------------+
| root | | localhost |
| root | | email-admin |
| root | | 127.0.0.1 |
| root | | ::1 |
| | | localhost |
| | | email-admin |
| root | | % |
查看发现数据库默认root账号和空账号都未设置密码
修改root用户的密码
mysql> update user set password=PASSWORD('yourpassword') where user='root' ;
Query OK, 5 rows affected (0.00 sec)
Rows matched: 5 Changed: 5 Warnings: 0
删除空账号
mysql> delete from user where user='';
Query OK, 2 rows affected (0.00 sec)
mysql> select user,password,host from user;
+-------+-------------------------------------------+-----------------+
| user | password | host |
+-------+-------------------------------------------+-----------------+
| root | *5A85E100F2A0D4AD5805DD6E3331937747369E5B | localhost | | root | *5A85E100F2A0D4AD5805DD6E3331937747369E5B | email-admin | | root | *5A85E100F2A0D4AD5805DD6E3331937747369E5B | 127.0.0.1 | | root | *5A85E100F2A0D4AD5805DD6E3331937747369E5B | ::1 |
| root | *5A85E100F2A0D4AD5805DD6E3331937747369E5B | % |
最后刷新缓存,确保新的密码立即开始使用
mysql>flush privileges;
Query OK, 0 rows affected (0.01 sec)。