MySQL账户相关 |
1.mysql消费者
缔造: mysql> GRANT ALL PRIVILEGES ON *.* TO monty@"%" IDENTIFIED BY 'something' WITH GRANT OPTION; mysql> GRANT RELOAD,PROCESS ON *.* TO admin@localhost; mysql> GRANT USAGE ON *.* TO dummy@localhost; 这些GRANT语句安装3个新消费者: monty 可以从任何地方衔接服务器的一个 彻底的超级消费者,然而必须 使用一个口令'something'做这个 。 留神,我们必须对monty@localhost和monty@"%"发出GRANT语句 。假如我们添加localhost条目,对localhost的匿名消费者条目在我们从当地主机衔接接时由mysql_install_db 缔造的条目将优先考量,由于它有更特定的Host字段值,所以以user表罗列顺序看更早到来 。 admin
可以从localhost没有一个口令进行衔接而且被授予reload和process治理权限的消费者 。这同意消费者执行mysqladmin reload、mysqladmin refresh和mysqladmin flush-*命令,还有mysqladmin processlist 。没有授予数据库有关的权限 。他们能在以后通过发出另一个GRANT语句授权 。 可以不用一个口令衔接的一个消费者,然而不得不从当地主机 。全局权限被设置为'N'--USAGE权限类型同意你无需权限就可设置一个消费者 。它 假如你将在以后授予数据库 有关的权限 。 2.通过直接 批改授权表设置消费者权限,运行这些命令( 留神,在 完毕时FLUSH PRIVILEGES): shell> mysql --user=root mysql mysql> INSERT INTO user (Host,User,Password) VALUES('localhost','custom',PASSWORD('stupid'));
VALUES ('localhost','bankaccount','custom','Y','Y','Y','Y','Y','Y'); mysql> INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv, Create_priv,Drop_priv) VALUES ('whitehouse.gov','expenses','custom','Y','Y','Y','Y','Y','Y'); mysql> INSERT INTO db (Host,Db,User,Select_priv,Insert_priv,Update_priv,Delete_priv, Create_priv,Drop_priv) VALUES('%','customer','custom','Y','Y','Y','Y','Y','Y'); mysql> FLUSH PRIVILEGES; 3. 改变密码时有时候会遇到 淡忘先前的密码,这时 可以采纳以下 模式: 批改你的my.ini 配置文件, 在里面的 [mysqld]节中某处加入下面的一行 skip-grant-tables 而后 保留,重启 mysqld 服务,这样你 可以 使用任何消费者名以超级治理员的身体登录 MySQL 服务了 。 而后转到mysql数据库中 批改user表: update user set password=PASSword('1234') where user='root'; 定然记住要用password函数,不然 将来将要输入的密码是‘1234’的密文 。 最终删除上面所添中的内容,重启服务 。 另外,假如 可以从本机或其它机器上找到 可以 畸形 使用的MySql数据库,那么也可拷贝其mysql库中的文件名为user的 有关文件, 遮蔽 淡忘密码的数据库中的同名文件,这样也能以被拷贝者的账户密码登录 。 4.如何设置MySql账户使其 可以从远程 拜访服务器
在命令行下, 可以有两种大同小异的 步骤来作此设置: (1)mysql>GRANT ALL PRIVILEGES ON *.* TO root@localhost IDENTIFIED BY 'something' WITH GRANT OPTION; mysql>GRANT ALL PRIVILEGES ON *.* TO root@"%" IDENTIFIED BY 'something' WITH GRANT OPTION; 第一句添加了一个root消费者授权通过当地机(localhost) 拜访,密码“something” 。 第二句则是 使用通配符,授与root消费者从任何其它主机 发动的 拜访 。 (2)亦可直接 使用update语句 批改user表: 使用root消费者或 其余消费者登录mysql,转到mysql数据库 update user set host='localhost' where user='root'; flush privileges;//只同意root在本机登录 update user set host='%' where user='root'; flush privileges;//同意root远程 拜访 留神,以上 定然要加flush语句 。 另外,假如要建新消费者,则用grant语句 比较容易,记住语句grant总是 缔造新消费者 。 5.对于MySql的3306端口 一次在服务器上新装5.0.18时, 揭示3306端口已被占用,强制 使用该端口,则发现所衔接上的数据库是4.1.8版本,始终 无奈 拜访到新 缔造的服务器 。后来发现机器上原来装有一个mysql服务器,4.1.8版本 。 此时,应再一次配置新版本的数据库, 将端口设为 其余的,如3307,那么在 拜访时, 可以通过外加选项:--port=3307来 拜访,在.net程序中也须将衔接字符串添上port=3307,即可 。 |