怎样在远程服务器上创建一个mysql数据库
第一步:安装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'分别指的是新的用户名和他的密码。这条信息将会被保存在mysqluser表中,而且密码会被加密。
第六步:测试
先插入一个虚拟的记录到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')。
mysql默认状态是只支持localhost连接,这样远程服务器都输入IP地址去连接你的服务器是不可以的,下面我来介绍怎么让mysql允许远程连接配置方法,有需要的朋友可参考。
方法一,直接利用在“权限”-》管理中修改用户选择或输入IP地址。
方法二,使用mysql的GRANT命令进行操作
例如:让newuser用户使用newpwd密码从IP:19216813主机链接到mysql服务器
具体步骤:
代码如下
mysql>GRANT ALL PRIVILEGES ON TO ‘newuser’@’19216813′ IDENTIFIED BY ‘newpwd’ WITH GRANT OPTION;
mysql>flush privileges;
完整配置方法
假设我们有:
代码如下
Web-Server : 1921681100 //ubuntu
Mysql-Server : 1921681101 //xp
我们可以按照下面的步骤修改:
1, 登录 Mysql-Server 连接本地 mysql (默认只允许本地连接)
代码如下
Microsoft Windows XP [版本 512600]
(C) 版权所有 1985-2001 Microsoft Corp
C:Documents and Settingskuco>mysql -h localhost -u root -p
Enter pass:
Welcome to the MySQL monitor Commands end with ; or g
Your MySQL connection id is 13
Server version: 5145-community-log MySQL Community Server (GPL)
Type 'help;' or 'h' for help Type 'c' to clear the current input statement
mysql>
2, 修改 Mysql-Server 用户配置
代码如下
mysql> USE mysql; -- 切换到 mysql DB
Database changed
mysql> SELECT User, Password, Host FROM user; -- 查看现有用户,密码及允许连接的主机
+------+----------+-----------+
| User | Password | Host |
+------+----------+-----------+
| root | | localhost |
+------+----------+-----------+
1 row in set (000 sec)
mysql> -- 只有一个默认的 root 用户, 密码为空, 只允许 localhost 连接
mysql> -- 下面我们另外添加一个新的 root 用户, 密码为空, 只允许 1921681100 连接
mysql> GRANT ALL PRIVILEGES ON TO 'root'@'1921681100' IDENTIFIED BY '' WITH GRANT OPTION;
mysql> -- 当然我们也可以直接用 UPDATE 更新 root 用户 Host, 但不推荐, SQL如下:
mysql> -- UPDATE user SET Host='1921681100' WHERE User='root' AND Host='localhost' LIMIT 1;
grant 权限名(所有的权限用all) on 库名(全部)表名(全部) to ’要授权的用户名‘@’%'(%表示所有的IP,可以只些一个IP) identified by “密码”;
身份检查使用user表(Host, User和Password)3个范围列执行。服务器只有在user表记录的Host和User列匹配客户端主机名和用户名并且提供了正确的密码时才接受连接。
在user表Host值的指定方法:
Host值可以是主机名或IP号,或’localhost’指出本地主机。
你可以在Host列值使用通配符字符“%”和“_”。
Host值’%'匹配任何主机名,空Host值等价于’%'。它们的含义与LIKE操作符的模式匹配操作相同。例如,’%'的Host值与所有主机名匹配,而’%mysqlcom’匹配mysqlcom域
的所有主机。
3, 修改 Mysql 配置文件 myini
代码如下
bind-address = 127001
将 bind-address = 127001 这一行注释掉, 即修改为:
代码如下
#bind-address = 127001
到此 Mysql-Server 端配置就完成了
4, 连接 Web-Server , 检查一下是否能连上
代码如下
kuco@kuco-desktop:/$ /opt/lampp/bin/mysql -h 1921681101 -u root -p
Enter password:
Welcome to the MySQL monitor Commands end with ; or g
Your MySQL connection id is 23
Server version: 5145-community-log MySQL Community Server (GPL)
Type 'help;' or 'h' for help Type 'c' to clear the current input statement
mysql> -- 一切OK
1 一般来讲,远程服务器使用linux环境搭建,出于安全考虑,对登陆终端有严格限制,意思就是说linux在命令行会决定哪些ip可以登陆服务器,你需要和管理人员进行协商,让其对你的ip开放
2设置完成后你就可以在你电脑上连接mysql了,账号我们一般写的是localhost 现在你改成ip地址就好了,个人建议使用navicat 特别方便,windos和mac都有破解版,方便下载
对你ip开放后,点击navicat圈住部分,进行登陆操作
看着localhost了没,改成你的ip地址,然后接口一般3306 保持原样,远程mysql的账号密码,写上就好了
3如果还没连接上就在问一下linux技术支持,那就是还没对你的ip开放,当然了连接成功后密码一定要妥善保管,不然后果很严重
mysql开启远程连接:
以 root用户登入mysql
GRANT all privileges ON wang TO 'wang'@'%' identified by 'wang';
flush privileges;
修改配置文件
vi /etc/mysql/mycnf
把bind-address = 127001 这行注掉
重启数据库
service mysql restart
本地测试连接3306端口
telnet 192168177 3306 若已连通
确定已安装mysql客户端which mysql
/usr/bin/mysql
然后mysql -uwang -h192168177 -p 看能否登录
外网如何利用网络辅助nat123实现访问内网mysql数据库?
网络环境:动态公网IP。
明确mysql数据库内网访问地址端口,确保mysql数据库服务正常,在内网可以正常访问连接。内网使用nat123动态域名解析。内网服务器安装nat123客户端,并使用它。登陆。进入主面板/域名解析列表/添加域名。选择动态域名解析记录,使用二级域名,或自己的域名。鼠标放在输入框有向导提示。
路由器端口映射,路由映射mysql数据库访问端口。
因为公网IP是在路由器上的,外网访问时,需要经过路由,需要在路由器上做端口映射,将内网mysql数据库访问端口打通。路由器端口映射位置:转发规则/虚拟服务器/添加允许外网访问端口和协议。我的mysql数据库端口是默认的3306,我内网对应mysql数据库主机的内网IP地址是192168122。
外网访问时,使用动态解析域名。
在外网访问mysql数据库时,使用动态解析域名进行连接访问。域名是不变的,可以上网即可访问,再也不担心动态公网IP变化的问题。
最近有一同学问我MySQL无法远程访问怎么呢,但能使用localhost来进行方法,下面脚本之家来给各位介绍一下解决办法,需要的朋友可以参考下
可能是IP没设置好
问题:MySQL权限设置正确,但仍无法远程访问。通过telnet发现3306端口未打开。
分析:MySQL默认只绑定127001,即:只有在本机才能访问3306端口。
解决:找到MySQL配置文件,搜索“bind-address”,找到这一行:
bind-address = 127001 在前面加一个#,注释掉这一行,保存,重启MySQL。再通过远程访问就可以了,telnet可以发现端口也打开了。
例我们配置
1 确保skip-networking被删除或者屏蔽,否则不支持TCP/IP 访问
2 增加行bind-address = 6555552,替代6555552 为你的服务器地址
修改后,配置为:
复制代码代码如下:
[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqldpid
socket = /var/run/mysqld/mysqldsock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
language = /usr/share/mysql/English
bind-address = 6555552
# skip-networking
保存并关闭配置文件
重启mysql服务器:# /etc/initd/mysql restart
如果上面办法没有用我们可以通用mysql命令模式进行设置
1。 改表法。
可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改 "mysql" 数据库里的 "user" 表里的 "host" 项,从"localhost"改称"%"
复制代码代码如下:
CODE:mysql -u root -p123
mysql>use mysql;
mysql>update user set host = '%' where user = 'root';
mysql>select host, user from user;
2 授权法。
例如,你想kevin使用mypassword从任何主机连接到mysql服务器的话。
复制代码代码如下:
GRANT ALL PRIVILEGES ON TO 'kevin'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
如果你想允许用户kevin从ip为192168101234的主机连接到mysql服务器,并使用mypassword作为密码
复制代码代码如下:
GRANT ALL PRIVILEGES ON TO 'kevin'@'192168101234' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
注意了,如果是linux系统防火墙也很重要哦
复制代码代码如下:
/ 关闭防火墙 /
service iptables stop
/ 开启防火墙 /
service iptables start
/ 默认关闭防火墙 /
chkconfig iptables off
第一中方法:比较详细
以下的文章主要介绍的是MySQL 数据库开启远程连接的时机操作流程,其实开启MySQL
数据库远程连接的实际操作步骤并不难,知识方法对错而已,今天我们要向大家描述的是MySQL 数据库开启远程连接的时机操作流程。
1、d:\MySQL\bin\>MySQL -h localhost -u root
这样应该可以进入MySQL服务器
复制代码
代码如下:
MySQL>update user set host = '%' where
user = 'root';
MySQL>select host, user from user;
2、MySQL>GRANT ALL PRIVILEGES ON TO 'root'@'%' IDENTIFIED BY
'mypassword' WITH GRANT OPTION
予任何主机访问数据的权限
3、MySQL>FLUSH
PRIVILEGES
修改生效
4、MySQL>EXIT
退出MySQL服务器
这样就可以在其它任何的主机上以root身份登录啦!
以上的相关内容就是对MySQL 数据库开启远程连接的介绍,望你能有所收获。
0条评论