mysql恢复root权限的root用户没有任何权限,菜鸟求教

用户名:history_xcy
文章数:50
访问量:9327
注册日期:
阅读量:1297
阅读量:3317
阅读量:581031
阅读量:465313
[匿名]51cto游客:
51CTO推荐博文
数据库的操作,表的操作,很重要,但是我感觉对于数据库的安全才是最重要的,来看看该怎么管理好自己的数据库吧,该注意的地方已经做了注释,希望大家可以好好学习。在本机设置数据库管理员初始密码[root@xu mysql]# mysqladmin -hlocalhost -uroot password "123"修改密码 (要知道之前的密码)[root@xu mysql]# mysqladmin -hlocalhost -uroot -p password "456"Enter password: 跳过SQL的验证库进入 vim /f 1 [mysqld] 2 skip-grant-table修改数据库管理员的密码mysql&
mysql& select User,Host, 查看user表mysql& update mysql.user set Passwrod=passwd("888") where User="root" and Host="localhost"; 修改密码mysql&
刷新授权 只要手动任何一个表作了一个更改就要刷新授权表注视掉 1 [mysqld] 2 skip-grant-table重启服务默认情况下只允数据库在本机登录的时候有给数据库授权的权限查看自己的登录权限mysql&查看当前有多少个授权用户 权限多少
数据库名mysql& show grants for extmail@ ---------- 不对。----------------------------------------用户授权 (就在本机直接登录其它的电脑的mysql 用管理员身份)授权格式 grant 权限列表 on 数据库名 to 用户名@ "客户端地址" &[ identified by "密码" with grant option];权限列表类表值用,分割all 所有的select ,delect,update(name,age) 可选择的数据库*.*
所有的数据库名.*
这个数据的所有数据库名.表名
用户名 与系统用户无关 。 是自己在授权是自定义的 mysql.user表里 要有标识性客户端地址%
所有主机1.1.1.1
单个主机192.168.1.%
. ---------------------------------------给所有用户手受所有权限允许使用数据库服务的root用户从网络中所有主机访问数据库服务器 密码123456 对服务器 上的所有库有完全权限 且有授权的权限授权之前mysql& select User,Host,授权的表mysql& grant all on *.* to root@"%" identified by "123456"查看授权的权限mysql& show grants for root@"%";----------------------------------------------设置 只能用webuser 用户登录 网段是192.168.1.% mysql& grant all on grantdb.* to webuser@"192.168.1.%";----------------------------------------------mysql&+-----------------------+---------------+------+-----+---------+-------+| Field
| Null | Key | Default | Extra |+-----------------------+---------------+------+-----+---------+-------+| Host
| char(60)
| NO | PRI |
| char(64)
| NO | PRI |
库的授权信息| User
| char(16)
| NO | PRI |
用户的授权信息| Select_priv
| enum('N','Y') | NO |
| | Insert_priv
| enum('N','Y') | NO |
| | Update_priv
| enum('N','Y') | NO |
| | Delete_priv
| enum('N','Y') | NO |
| | Create_priv
| enum('N','Y') | NO |
| | Drop_priv
| enum('N','Y') | NO |
| | Grant_priv
| enum('N','Y') | NO |
| | References_priv
| enum('N','Y') | NO |
| | Index_priv
| enum('N','Y') | NO |
| | Alter_priv
| enum('N','Y') | NO |
| | Create_tmp_table_priv | enum('N','Y') | NO |
| | Lock_tables_priv
| enum('N','Y') | NO |
| | Create_view_priv
| enum('N','Y') | NO |
| | Show_view_priv
| enum('N','Y') | NO |
| | Create_routine_priv | enum('N','Y') | NO |
| | Alter_routine_priv | enum('N','Y') | NO |
| | Execute_priv
| enum('N','Y') | NO |
| | Event_priv
| enum('N','Y') | NO |
| | Trigger_priv
| enum('N','Y') | NO |
| +-----------------------+---------------+------+-----+---------+-------+22 rows in set (0.01 sec)-------------------------------------------库的授权mysql&mysql&mysql& select Host,User,D----------------------------------%不包括localhostmysql& cmysql&grant select on webdb.* to user@"%" identified by "123" quit mysql -hlocalhost -uuser1 -p123 登录不上原因 % 不包括localhost-------------------------------------------------匿名用户不输入密码也可以登录登录[root@xu ~]# mysql -uamysql& select User,Host,+------+---------------+-------------------------------------------+| User | Host
| password
|+------+---------------+-------------------------------------------+| root | localhost
| *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 | | root |
| | root | 127.0.0.1
| localhost
这样的不安全 ,随便输入个用户就可以进入不需要密码,匿名用户|
| | root | %
| *6BB05EE4568DDA7DC67ED2CA2AD9 | | zp1 | 192.168.1.111 | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 | | user | %
| *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 | +------+---------------+-------------------------------------------+删除 空白的用户mysql& delete from mysql.user where User="";刷新mysql&在重新登录 就不能登录了 更加安全[root@xu ~]# mysql -uaERROR ): Access denied for user 'a'@'localhost' (using password: NO)--------------------------------------------------用户权限的撤销 (前提要有这样的授权才行要不他提示没有这种权限)revoke 权限列表 on 数据库名 from 用户名@ “客户端地址“;查看有什么权限mysql& show grants for root@"%";| GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD '*6BB05EE4568DDA7DC67ED2CA2AD9' WITH GRANT OPTION | ------------------------------------撤销用户登录权限 (但是授权的权限还在)用户也在mysql& revoke all on *.* from root@"%";再次查看mysql& show grants for root@"%";| GRANT USAGE ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD '*6BB05EE4568DDA7DC67ED2CA2AD9' WITH GRANT OPTION | -----------------------------------------------去掉授权的权限 权限没有了 但是用户还在mysql& revoke grant option on *.* from root@"%";查看| GRANT USAGE ON *.* TO 'root'@'%' IDENTIFIED BY PASSWORD '*6BB05EE4568DDA7DC67ED2CA2AD9' | -------------------------------------在删除 这个root用户这样就真正的把权限和用户删出了。--------------------------------------------------------------数据库的备份和恢复物理备份 cp 或者 tar 缺点是跨平台不太好 逻辑备份 提供的备份命令 进行备份
跨平台性 逻辑备份
[root@xu dbadb]# mysqldump -hip -u用户名 -p密码 数据库名 & 目录名/文件备份表数据库名
数据库名 所有的进行备份数据库名 表名1 表名2 表名3
备份多个表备份库-B 数据库名1 数据名2
备份多个选择的数据库[root@xu /]# mysqldump -uroot -p123 --all-databases &/dbadb/aa
备份所有库-----------------------------------------------------
顺序执行[root@xu dbadb]# mkdir / mysqldump -hlocalhost -uroot -p123 webdb & /dbadb/aa.sql----------------------------------------恢复[root@xu /]# mysql -hip -u 用户名 -p密码 数据名 & 文件名.sql-----------------------------------------增量备份mysql 日志
( 错误 , 查询 , binlog日志 , 慢查询日志)binlog日志
能够记录除查询之外的sql语句 默认binlog 日志 在 /var/lib/mysql/ 下
mysql-bin.0000001 记录mysql语句 (查询的不记录)500兆以后就会新创建一个 mysqld-bin.index 存放binlog文件的分数 只有重启服务的时候才会生成,手动创建index内容不会添加进去查看binlog文件
时间和节点 来记录的mysqlbinlog mysql-bin.0000001------------------------[root@xu mysql]# vim /f 1 [mysqld] 2 log-bin[root@xu mysql]# service mysqld restart----------------------指定binlog 名字[root@xu mysql]# vim /f 1 [mysqld] 2 log-bin=aa------------------------指定路径[root@xu mysql]# vim /f 1 [mysqld] 2 log-bin=/aa/wenjianmkdir /aachmodo+w /aa重启服务-------------------------手动创建binlog日志1 service mysqld restart
最少用的2 mysql & flush logs;3 mysql -uroot -p123 -e "flush logs" 4 mysqldump -uroot -p123 --flush-logs db1 & /db.sql -------------------------------查看binlog文件 mysqlbinlog mysql-bin.0000001--------------------恢复 以节点恢复[root@xu mysql]# mysqlbinlog aa.0000001 --start-postion=98 --stop-positon=189 在桌面显示[root@xu mysql]# mysqlbinlog aa.0000001 --start-postion=98 --stop-positon=189 |mysql -uroot -p123 增量备份------------------------------------------差异备份星期1
星期2 星期3 星期4 星期5 星期6 星期日 完全备份数据库 bin
完全备份数据库--------------------------------------------------以时间恢复[root@xu mysql]# mysqlbinlog aa.0000001 --start-datetime=" 13:53:21" --start-time=" 13:53:29" [root@xu mysql]# mysqlbinlog aa.0000001 --start-datetime=" 13:53:21" --start-time=" 13:53:29" |mysql -uroot -p123在时间恢复的时候如果俩个命令在同一个时间点上 恢复的时候结束时间要大于开始时间批量恢复binlog日志的内容[root@xu mysql]# mysqlbinlog `cat /binlogdir/aa.index` | mysql -uroot -p123清除index里的文件prinyf “” & /binlogdir/aa.index----------------------------------------------慢查询日志log-slow-queries[=/path_to/file_name]long_query_time=3记录了执行时间超过 log_query_time 参数值的 sql 语句,慢查询日志可以的有效的帮助我们发现实际应用中 sql 性能问题,找出执行效率低下的 SQL 语句--------------------------------------------错误日志log-error=/var/log/mysqld.log记录 mysql 数据库启动关闭信息,以及服务器运行过程中所发生的任何严重的错误信息,通常,当数据库出现问题不能正常启动,我们应当首先想到的就是查看错误日志--------------------------------二进制日志log-bin=[/path_to/file_name]bin-log=ppmax_binlog_size=1Mbinary log 文件是以二进制格式保存的,我们需要借助 mysqlbinlog 工具进行----------------------------------------binlog实现 AB 复制(主从复制)1保持原始数据一至 从的一定要有主的2 安全机制都关掉3 线路问题没问题主的服务器#1 删掉之前的库 到原始状态#2 重启服务3启动binlog日志进入mysql创建一个授权帐号 grant replication slave on *.* to plj@"192.168.1.149" indentified by "123";编辑文件[root@xu mysql]# vim /f 1 [mysqld] 2 log-bin 3 server-id=71---------------------------------------------从的配置重启服务[root@xu mysql]# service mysqld restart俩个主机的数据一致编辑文件[root@xu mysql]# vim /fserver-id=149master-host=192.168.1.71master-user=pljmaster-password=123[root@xu mysql]# service mysqldd restart---------------------------[root@xu mysql]# cd /var/lib/mysql/db
ib_logfile0 mysql
extmail ib_logfile1 mysqld-relay-bin.000002 test mysqld-relay-bin.indexmysqld-relay-bin.000002 中继日志mysqld-relay-bin.index
中继日志份数
中继日志主日志数据库的信息-------------------------主数据库查看自己的状态[root@xu mysql]# show master status\G;+-------------------+----------+--------------+------------------+| File
| Position
| Binlog_Do_DB
| Binlog_Ignore_DB |+-------------------+----------+--------------+------------------+| mysqld-bin.000001
| +-------------------+----------+--------------+------------------+1 row in set (0.00 sec)从数据库查看自己的状态[root@xu mysql]# show slave status\G;*************************** 1. row ***************************
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.1.71
Master_User: plj
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mysqld-bin.000001
Read_Master_Log_Pos: 956
Relay_Log_File: mysqld-relay-bin.000002
Relay_Log_Pos: 1094
Relay_Master_Log_File: mysqld-bin.000001
Slave_IO_Running: Yes
重启服务以后 他看的是 信息
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table: Replicate_Wild_Ignore_Table:
Last_Errno: 0
Last_Error:
Skip_Counter: 0
Exec_Master_Log_Pos: 956
Relay_Log_Space: 1094
Until_Condition: None
Until_Log_File:
Until_Log_Pos: 0
Master_SSL_Allowed: No
Master_SSL_CA_File:
Master_SSL_CA_Path:
Master_SSL_Cert:
Master_SSL_Cipher:
Master_SSL_Key:
Seconds_Behind_Master: 01 row in set (0.00 sec)本文出自 “” 博客,请务必保留此出处
了这篇文章
类别:┆阅读(0)┆评论(0)鑿滈笩姹傛暀杩炴帴mysql闂??銆恓sp鍚с}

我要回帖

更多关于 mysql root用户权限 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信