一.mysqld和mysqld_safe 有什么区别?直接运行mysqld程序来启动MySQL服务的方法很少
见,mysqld_safe脚本会在启动MySQL服务器后继续监控其运行情况,并在其死机时重新启动它。用mysqld_safe脚本来启动MySQL
服务器的做法在BSD风格的unix系统上很常见,非BSD风格的UNIX系统中的mysql.server脚本其实也是调用mysqld_safe脚本
去启动MySQL服务器的。
二.skip-grant-tables:非常有用的mysql启动参数
介绍一个非常有用的mysql启动参数—— --skip-grant-tables。
顾名思义,就是在启动mysql时不启动grant-tables,授权表。有什么用呢?当然是忘记管理员密码后有用。
操作方法:
1、杀掉原来进行着的mysql:
rcmysqld stop
或者:
service mysqld stop
或者:
kill -TERM mysqld
2、以命令行参数启动mysql:
/usr/bin/mysqld_safe --skip-grant-tables &
3、修改管理员密码:
use mysql;
update user set password=password('yournewpasswordhere') where
user='root';
flush privileges;
exit;
4、杀死mysql,重启mysql
三.一些语法命令
1,CREATE USER语法
CREATE USER user identified by '123456'
2,DROP USER语法
drop user user@localhost;
3,SET PASSWORD语法
set password for user=password('123456');
4,GRANT和REVOKE语法
grant all privileges on db.* to user@localhost identified by '123456';
REVOKE ALL PRIVILEGES, GRANT OPTION FROM user@'%';
revoke all privileges on db.* from user@'192.168.1.1';
四.mysql root权限丢失解决方法:
目前来说只有两种:
1、跳过授权表启动MYSQL:
WINDOWS或者LINUX下都可以用
MYSQLD_safe --SKIP-GRANT-TABLES
来启动 MYSQL。
use mysql
这个时候你对所有的表都具有操作权限。
更新的MYSQL.USER表的所有字段中为N的为Y就可以了。(update user set 权限=‘Y’)
2、就是COPY 别的有权限的MYSQL 库考到你原来的目录:
不过原来的一定要备份。
之后的操作同上。
五.grant授权并建立用户:
grant all on *.* to wyg;
grant all on *.* to wyg@localhost
这两个是有区别的,前者是本地主机用户用%表示,后者是给主机的用户授权,可以是本地也可以是其他主机的用户。
可以通过select user,host,password from user;来查询。
而且set password既可以给wyg,也可以给wyg@localhost设置密码。后者可以针对远程用户登陆
阅读(416) | 评论(0) | 转发(0) |