• MYSQL修改密码并设置允许远程访问


    修改MySQL是需要有mysql里的root权限的,所以一般用户无法更改密码,除非请求管理员。
    方法一
    使用phpmyadmin,这是最简单的了,修改mysql库的user表,
    不过别忘了使用PASSWORD函数。
    方法二
    使用mysqladmin,这是前面声明的一个特例。
    mysqladmin -u root -p password mypasswd
    输入这个命令后,需要输入root的原密码,然后root的密码将改为mypasswd。
    把命令里的root改为你的用户名,你就可以改你自己的密码了。
    当然如果你的mysqladmin连接不上mysql server,或者你没有办法执行mysqladmin,
    那么这种方法就是无效的。
    而且mysqladmin无法把密码清空。
    下面的方法都在mysql提示符下使用,且必须有mysql的root权限:

      方法三
    mysql> INSERT INTO mysql.user (Host,User,Password)
    VALUES(’%',’jeffrey’,PASSWORD(’biscuit’));
    mysql> FLUSH PRIVILEGES
    确切地说这是在增加一个用户,用户名为jeffrey,密码为biscuit。
    在《mysql中文参考手册》里有这个例子,所以我也就写出来了。
    注意要使用PASSWORD函数,然后还要使用FLUSH PRIVILEGES。
    方法四
    和方法三一样,只是使用了REPLACE语句
    mysql> REPLACE INTO mysql.user (Host,User,Password)
    VALUES(’%',’jeffrey’,PASSWORD(’biscuit’));
    mysql> FLUSH PRIVILEGES
    方法五
    使用SET PASSWORD语句,
    mysql> SET PASSWORD FOR jeffrey@”%” = PASSWORD(’biscuit’);
    拟也必须使用PASSWORD()函数,
    但是不需要使用FLUSH PRIVILEGES。
    方法六
    使用GRANT … IDENTIFIED BY语句
    mysql> GRANT USAGE ON *.* TO jeffrey@”%” IDENTIFIED BY ‘biscuit’;
    这里PASSWORD()函数是不必要的,也不需要使用FLUSH PRIVILEGES。
    注意: PASSWORD() [不是]以在Unix口令加密的同样方法施行口令加密。
    MySQL 忘记口令的解决办法
    如果 MySQL 正在运行,首先杀之: killall -TERM mysqld。
    启动 MySQL :bin/safe_mysqld –skip-grant-tables &
    就可以不需要密码就进入 MySQL 了。
    然后就是
    >use mysql
    >update user set password=password(”new_pass”) where user=”root”;
    >flush privileges;
    重新杀 MySQL ,用正常方法启动 MySQL 。
    远程访问解决方法:
    1、改表法。可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从”localhost”改称”%”
    mysql -u root -pvmwaremysql>use mysql;
    mysql>update user set host = ‘%’ where user = ‘root’;
    mysql>select host, user from user;
    2、授权法。例如,你想myuser使用mypassword从任何主机连接到mysql服务器的话。
    GRANT ALL PRIVILEGES ON *.* TO ‘myuser’@'%’ IDENTIFIED BY ‘mypassword’ WI
    TH GRANT OPTION;
    如果你想允许用户myuser从ip为192.168.1.6的主机连接到mysql服务器,并使用mypassword作为密码
    GRANT ALL PRIVILEGES ON *.* TO ‘myuser’@'192.168.1.3′ IDENTIFIED BY
    ’mypassword’ WITH GRANT OPTION;
    我用的第一个方法,刚开始发现不行,在网上查了一下,少执行一个语句 mysql>FLUSH RIVILEGES
    使修改生效.就可以了
    另外一种方法,不过我没有亲自试过的,在csdn.net上找的,可以看一下.
    在安装mysql的机器上运行:
    1、d:\mysql\bin\>mysql -h localhost -u root
    //这样应该可以进入MySQL服务器
    2、mysql>GRANT ALL PRIVILEGES ON *.* TO ‘root’@'%’ WITH GRANT OPTION
    //赋予任何主机访问数据的权限
    3、mysql>FLUSH PRIVILEGES
    //修改生效
    4、mysql>EXIT
    //退出MySQL服务器
    这样就可以在其它任何的主机上以root身份登录啦


  • 相关阅读:
    emacs写cnblog博客
    emacs写cnblog博客
    linux安装jdk
    linux远程服务器启动mysql时显示:/tmp/mysql.sock 不存在的解决方法
    最新Linux系统下安装MySql 5.7.17全过程及注意事项
    Xshell实现Windows上传文件到Linux主机
    4种java定时器
    微信的redirect_uri参数错误解决办法
    要善于借势破局——宁向东的清华管理学课第4课
    Java内存区域
  • 原文地址:https://www.cnblogs.com/see7di/p/2239856.html
Copyright © 2020-2023  润新知