本地如何 *** 作服务器的mysql,详细教程

本地如何 *** 作服务器的mysql,详细教程,第1张

前置条件:

1、在阿里云服务器de系统是win service 2012。

2、服务器里自己安装了my sql 5.7

3、本地也安装了my sql 5.7

 

需求:想通过本地的mysql连接上远程的服务器的mysql,这样自己在本地 *** 作数据库比在服务器里数据库要好。

 

步骤:

一、增加允许远程连接 MySQL 用户 并授权。

在你安装路径下的bin文件夹里进行命令行的设置。

1、首先以 root 帐户登陆 MySQL

在服务器中打开命令行(shift+右键)

打开数据库管理员权限

mysql -uroot -p 123

我去,对应的是123是对应到数据库名。

果断改为

mysql -uroot -p

输入mysql的密码。

 

2、查看用户的权限

mysql>select host,user from user(查看用户权限情况)

 

 

3、创建远程登录用户并授权

进入到服务器的命令行里

输入

use mysql

在输入

grant all PRIVILEGES on discuz.* to ted@'123.123.123.123' identified by '123456'

上面的语句表示将 discuz 数据库的所有权限授权给 ted 这个用户,允许 ted 用户在 123.123.123.123 这个 IP 进行远程登陆,并设置 ted 用户的密码为 123456 。

注意:

(1)all PRIVILEGES 表示赋予所有的权限给指定用户,这里也可以替换为赋予某一具体的权限,例如:select,insert,update,delete,create,drop 等,具体权限间用“,”半角逗号分隔。

(2)discuz.* 表示上面的权限是针对于哪个表的,discuz 指的是数据库,后面的 * 表示对于所有的表,由此可以推理出:对于全部数据库的全部表授权为“*.*”,对于某一数据库的全部表授权为“数据库名.*”,对于某一数据库的某一表授 权为“数据库名.表名”。

(3)ted 表示你要给哪个用户授权,这个用户可以是存在的用户,也可以是不存在的用户。

(4)123.123.123.123 表示允许远程连接的 IP 地址,如果想不限制链接的 IP 则设置为“%”即可。

(5)123456 为用户的密码。

 

我最终使用的是把整个数据库的权限都ok,全部数据库的全部表,给root用户授权。没有设定远程连接IP地址。

 

4、执行更新权限(刷新权限)

flush privileges

 

5、再一次查看数据库用户权限

mysql>select host,user from user(再次查看用户的权限情况)

  

 

二、打开服务器上的防火墙阻止 3306 端口,可以公网访问。

 MySQL 默认的端口是 3306 ,需要确定防火墙没有阻止 3306 端口,否则远程是无法通过 3306 端口连接到 MySQL 的。

如果您在安装 MySQL 时指定了其他端口,请在防火墙中开启您指定的 MySQL 使用的端口号。

找到防火墙的允许的应用,打开数据库的公用和专用。

 

 

三、在本地建立服务器数据库连接

1、点击这个

 

2、数据里填上连接的名字,服务器IP,以及连接数据库的名字和密码

 

 3、点击configure server mangement

如果报这个错误,说明是服务器的3306端口与没有打开。

 

下面图连接成功

 

 选择SSH login。。。。

 

 

 输入服务器的公网IP和端口(我也不知道是啥端口我写的是本地跑的项目的本地接口)

 

 

 一路next就ok。

第一步:安装MySQL客户端

当然你得确保MySQL客户端已经安装完毕。如果没有的话,可以按照下面的方法。

在Debian,Ubuntu 或者 Linux Mint上:

$ sudo apt-get install mysql-client

$ sudo apt-get install mysql

第二步:登陆到MySQL服务器

首先,你需要使用root用户登陆进你的MySQL数据库,如下:

$ mysql -u root -h -p

请注意:为了能登进远程的MySQL服务器,你需要开启服务器上的远程访问,如果你想调用同一主机上的MySQL服务器,你可以省略 "-h " 参数

$ mysql -u root -p

你将需要输入MySQL服务器的密码,如果认证成功,MySQL提示将会出现。

第三步:创建一个MySQL数据库

在MySQL提示中输入命令之前,请记住所有的命令都是以分号结束的(否则将不会执行)。另外,考虑输入命令的时候使用大些字母,输入数据库对象使用小写字母。但那不是必须的,只是方便的阅读。

现在,创建一个叫做xmodulo_DB的数据库:

mysql>CREATE DATABASE IF NOT EXISTS xmodulo_DB

第四步:创建一个数据库表

为了达到演示的目的,创建一个叫做posts_tbl的表,表里会存储关于文章的如下信息:

文章的标题

作者的名字

作者的姓

文章可用或者不可用

文章创建的日期

这个过程分两步执行:

首先,选择需要使用的数据库:

mysql>USE xmodulo_DB

然后,在数据库中创建新表:

mysql>CREATE TABLE 'posts_tbl' (

'post_id' INT UNSIGNED NOT NULL AUTO_INCREMENT,

'content' TEXT,

'author_FirstName' VARCHAR(100) NOT NULL,

'author_LastName' VARCHAR(50) DEFAULT NULL ,

'isEnabled' TINYINT(1) NOT NULL DEFAULT 1,

'date' TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP ,

PRIMARY KEY ( 'post_id' )

TYPE = MYISAM

第五步:创建一个用户,并授予权限

当涉及到访问新创的数据库和表的时候,创建一个新用户是一个很好的主意。这样做就可以让用户在没有整个MySQL服务器权限的情况下,去访问那个数据库(而且只能是那个数据库)

你可以创建新用户,授予权限,并且使改变生效:

mysql>GRANT ALL PRIVILEGES ON xmodulo_DB.* TO 'new_user'@'%' IDENTIFIED BY 'new_password'

mysql>FLUSH PRIVILEGES

'newuser'和'newpassword'分别指的是新的用户名和他的密码。这条信息将会被保存在mysql.user表中,而且密码会被加密。

第六步:测试

先插入一个虚拟的记录到posts_tbl表:

mysql>USE xmodulo_DB

mysql>INSERT INTO posts_tbl (content, author_FirstName, author_Las tName)

VALUES ('Hi! This is some dummy text.', 'Gabriel', 'Canepa')

然后查看posts_tbl表中的所有记录:

mysql>SELECT * FROM posts_tbl

注意:MySQL会在先前定义的地方自动插入适当的默认值(比如,'isEnabled'和'date')。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/sjk/6830377.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-28
下一篇 2023-03-28

发表评论

登录后才能评论

评论列表(0条)

保存