今天需要在本地测试系统功能,因为本地没有数据库,就需要在程序里面连接远程数据库;

先用ssh登录远程服务器,用root连上数据库看看情况;

mysql> select Host,User,Password from mysql.user;
+----------------+------------------+-------------------------------------------+
| Host | User | Password |
+----------------+------------------+-------------------------------------------+
| localhost | root | *836E233974EBE6EA32F95F890A91363F8427F78B |
| iz94926clkiz | root | *836E233974EBE6EA32F95F890A91363F8427F78B |
| 127.0.0.1 | root | *836E233974EBE6EA32F95F890A91363F8427F78B |
| ::1 | root | *836E233974EBE6EA32F95F890A91363F8427F78B |
| localhost | debian-sys-maint | *1460ED3535ABDBB887F9E5F57F40A2354610CDF3 |
+----------------+------------------+-------------------------------------------+
5 rows in set (0.00 sec)

一共有5个mysql账号,Host列可以看出来,这些账号都只支持服务器本机连接,现在我们来创建一个远程用户;

create user test identified by '';
+----------------+------------------+-------------------------------------------+
| Host | User | Password |
+----------------+------------------+-------------------------------------------+
| localhost | root | *836E283974EBE6EA32F95F890A91363F8427F78B |
| iz949s6clkiz | root | *836E283974EBE6EA32F95F890A91363F8427F78B |
| 127.0.0.1 | root | *836E283974EBE6EA32F95F890A91363F8427F78B |
| ::1 | root | *836E283974EBE6EA32F95F890A91363F8427F78B |
| localhost | debian-sys-maint | *1460ED35E5ABDBB887F9E5F57F40A2354610CDF3 |
| % | test | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+----------------+------------------+-------------------------------------------+
6 rows in set (0.00 sec)

创建完成了,在程序里面连接发现还是没有权限,刚才我们只是创建了用户,还没有对这个用户分配权限;

grant all privileges on *.* to 'test'@'%'identified by '' with grant option;

all代表接受所有操作,比如 select,insert,delete....; *.* 代表所有库下面的所有表;% 代表这个用户允许从任何地方登录;为了安全期间,这个%可以替换为你允许的ip地址;

然后刷新mysql用户权限相关表;

flush privileges ;

我以为就此收工了,等等,程序怎么还是连不上去,还是 access deny ;

难道端口不是3306吗,打开 mysql配置文件,是默认的3306,接着往下面看,发现一个关键地方;

bind-address           = 127.0.0.1

原来这里mysql默认绑定了本地ip,不接受其他来源;注释掉,重启mysql 一切OK;

还有两个常用操作;

修改指定用户密码

update mysql.user set password=password('新密码') where User="test" and Host="localhost";

删除用户

delete from user where User='test' and Host='localhost';

最后在补充一个忘记root密码的解决办法

service mariadb stop

sudo mysqld_safe --skip-grant-tables &

mysql -u root -p 

use mysql;
update user set password=PASSWORD("mynewpassword") where User='root';
flush privileges;
quit service mariadb restart

MySQL创建远程用户并授权的更多相关文章

  1. 如何给MySql创建连接用户并授权

    一般在为MySql创建用户时建议使用GRANT前台命令,当然如果对我们开发者而言,方法还有很多种,比如使用INSERT命令,甚至是直接修改mysql user数据表,但仍然建议按照MySQL规范去授权 ...

  2. mysql创建新用户并且授权远程访问

    1 修改root用户的密码 linux安装了mysql后,默认情况下,如果是root用户,不需要密码就可以登陆. mysql -u root -p 然后回车就可以登陆了,如果是普通用户,不能登陆. 2 ...

  3. mysql创建远程用户

    grant all privileges on *.* to myuser@"%" identified by 'password'; 用root用户登陆,然后: grant al ...

  4. MySQL创建一个用户,指定一个数据库 授权

    Mysql 创建一个用户 hail,密码 hail,指定一个数据库 haildb 给 hail mysql -u root -ppassworduse mysql;insert into user(h ...

  5. mysql 创建新用户、数据库、授权

    创建用户 1.登录mysql mysql -uroot -p 2.创建本地用户(2.3选其一) #use mysql;             //选择mysql数据库 #create user 'w ...

  6. 转:mysql 创建一个用户,指定一个数据库

    转自:http://blog.sina.com.cn/s/blog_8c2525390101h0dv.html mysql 创建一个用户 hail,密码 hail,指定一个数据库 haildb 给 h ...

  7. HOSt ip is not allowed to connect to this MySql server, MYSQL添加远程用户或允许远程访问三种方法

    HOSt ip is not allowed to connect to this MySql server 报错:1130-host ... is not allowed to connect to ...

  8. Mysql创建新用户后无法登录,提示 Access denied for user 'username'@'localhost' (using password: YES)

    MySQL创建新用户后无法登录,提示 Access denied for user 'username'@'localhost' (using password: YES) ,多半是因为存在匿名用户, ...

  9. php 通过 create user 和grant 命令无法创建数据库用户和授权的解决办法

    php 通过 create user 和grant 命令无法创建数据库用户和授权的解决办法 解决办法, 通过 insert 命令的方式进行创建. 创建数据库用户: $sql= "insert ...

随机推荐

  1. Emacs 中使用 shell

    直接在 Emacs 中使用 shell 能增加一点效率.Emacs 本身支持的 shell 相关的命令很多,此处化繁为简,只用一条足够了. M-x shell:将打开一个名为 * shell * 的 ...

  2. windows解决访问github慢问题

    ·1.更改host文件 文件地址: C:\Windows\System32\Drivers\etc ​ 如果不能直接修改,可拷贝到桌面修改后再复制回去 2.在host文件追加 ​ #github 19 ...

  3. Java内存模型(和堆栈等不是同一层次的划分)

    什么叫Java内存模型? 现代计算机通过指令的重排序来提升计算机的性能,而没有限制条件的指令重排序会使得程序的行为不可预测,JMM就是通过一系列的操作规则限制指令重排序的方式使得指令重排序不会破坏JM ...

  4. macOS10.4后的刻盘新姿势

    先sudo -s 输入密码 然后终端拖入createinstallmedia   (在macOS Mojave.app显示包内容里面的resources里面的文件复制下来即可) 输入 --volume ...

  5. 【转】MySQL中的行级锁,表级锁,页级锁

    在计算机科学中,锁是在执行多线程时用于强行限制资源访问的同步机制,即用于在并发控制中保证对互斥要求的满足. 在数据库的锁机制中介绍过,在DBMS中,可以按照锁的粒度把数据库锁分为行级锁(INNODB引 ...

  6. console 命令进行 JS 调试的灵活用法

    1.console.log() 占位符 console.log 支持的占位符包括:字符(%s).整数(%d或%i).浮点数(%f)和对象(%o): console.log('字符串: %s, 整数: ...

  7. Android开发之自定义万能BaseAdapter

    话不多说哦,直接上模板: package com.zyzpp.adapter; import android.content.Context; import android.util.SparseAr ...

  8. IDEA安装Lombok插件失败的解决方案

    作者:13 GitHub:https://github.com/ZHENFENG13 版权声明:本文为原创文章,未经允许不得转载. Lombok简介 Lombok是Java语言的实用工具,确切的说,应 ...

  9. [程序员的业余生活]一周读完《高效能人士的七个习惯》Day1:这是不是一碗鸡汤?

    提出问题 今天突然想聊聊最近对职场的一些感悟. 这段时间,小端一直在思考一个问题:作为一个程序员,怎么才能成为团队的核心? 还记得刚入职场那几年,小端一直觉得,技术过硬,经验丰富,敢打敢拼,就是答案. ...

  10. 线程GIL锁 线程队列 回调函数

    ----------------------------------无法改变风向,可以调整风帆;无法左右天气,可以调整心情.如果事情无法改变,那就去改变观念. # # ---------------- ...