MySQL数据库管理命令和远程管理问题

来源:互联网 发布:淘宝商品搜索排行榜 编辑:程序博客网 时间:2024/05/21 15:43
MySQL数据库管理命令和远程管理问题

本地phpMyAdmin管理远程数据库(要远程数据库给你授权才能连接,本地访问远程数据库的话,需要MySQL设置远程允许连接。)

修改config.inc.php的host设置是

$cfg['Servers'][$i]['host'] = '远程主机IP';
$cfg['Servers'][$i]['auth_type'] = 'config';
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '123456';

也可以:

由于本地也有一个数据库要管理 所以 $cfg['PmaAbsoluteUri'] = 'http://localhost/phpmyadmin/'; 没有改,而是在 localhost的下面 另加了一个用户的样子:

相当于 $cfg['Servers'][1]['host'] = 'localhost’;

$cfg['Servers'][2]['host'] = ‘远程主机IP;
这样在phpMyAdmin的主页面上就可以选择服务器了

注意:同时要添加

$cfg['Servers'][2]['auth_type'] = 'cookie';

$cfg['Servers'][2]['controluser'] = 'user';
$cfg['Servers'][2]['controlpass'] = 'password';

 

 以下是常用的在Windouws的cmd命令窗口下的命令,注意在mysql提示付下每个命令以分号;结束否则无效。

连接:mysql -h主机地址 -u用户名 -p用户密码 (注:u与root可以不用加空格,其它也一样)
断开:exit (回车)


创建授权:grant select on 数据库.* to 用户名@登录主机 identified by \"密码\"
修改密码:mysqladmin -u用户名 -p旧密码 password 新密码
删除授权: revoke select,insert,update,delete om *.* from test2@localhost;


显示数据库:show databases;
显示数据表:show tables;
显示表结构:describe 表名;


创建库:create database 库名;
删除库:drop database 库名;
使用库:use 库名;


创建表:create table 表名 (字段设定列表);
删除表:drop table 表名;
修改表:alter table t1 rename t2
查询表:select * from 表名;
清空表:delete from 表名;
备份表: mysqlbinmysqldump -h(ip) -uroot -p(password) databasename tablename > tablename.sql
恢复表: mysqlbinmysql -h(ip) -uroot -p(password) databasename tablename < tablename.sql(操作前先把原来表删除)


增加列:ALTER TABLE t2 ADD c INT UNSIGNED NOT NULL AUTO_INCREMENT,ADD INDEX (c);
修改列:ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);
删除列:ALTER TABLE t2 DROP COLUMN c;


备份数据库:mysql\bin\mysqldump -h(ip) -uroot -p(password) databasename > database.sql
恢复数据库:mysql\bin\mysql -h(ip) -uroot -p(password) databasename < database.sql
复制数据库:mysql\bin\mysqldump --all-databases > all-databases.sql
修复数据库:mysqlcheck -A -o -uroot -p54safer


文本数据导入: load data local infile \"文件名\" into table 表名;
数据导入导出:mysql\bin\mysqlimport database tables.txt

第一招、mysql服务的启动和停止
net stop mysql
net start mysql

第二招、登陆mysql
语法如下: mysql -u用户名 -p用户密码
键入命令mysql -uroot -p, 回车后提示你输入密码,输入12345,然后回车即可进入到mysql中了,mysql的提示符是:
mysql>
注意,如果是连接到另外的机器上,则需要加入一个参数-h机器IP

第三招、增加新用户
格式:grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"
如,增加一个用户user1密码为password1,让其可以在本机上登录, 并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令:
grant select,insert,update,delete on *.* to
Identified by "password1";
如果希望该用户能够在任何机器上登陆mysql,则将localhost改为"%"。
如果你不想user1有密码,可以再打一个命令将密码去掉。
grant select,insert,update,delete on mydb.* to
identified by "";

第四招: 操作数据库
登录到mysql中,然后在mysql的提示符下运行下列命令,每个命令以分号结束。
1、 显示数据库列表。
show databases;
缺省有两个数据库:mysql和test。 mysql库存放着mysql的系统和用户权限信息,我们改密码和新增用户,实际上就是对这个库进行操作。
2、 显示库中的数据表:
use mysql;
show tables;
3、 显示数据表的结构:
describe 表名;
4、 建库与删库:
create database 库名;
drop database 库名;
5、 建表:
use 库名;
create table 表名(字段列表);
drop table 表名;
6、 清空表中记录:
delete from 表名;
7、 显示表中的记录:
select * from 表名;

第五招、导出和导入数据
1. 导出数据:
mysqldump --opt test > mysql.test
即将数据库test数据库导出到mysql.test文件,后者是一个文本文件
如:mysqldump -u root -p123456 --databases dbname > mysql.dbname
就是把数据库dbname导出到文件mysql.dbname中。
2. 导入数据:
mysqlimport -u root -p123456 < mysql.dbname。
不用解释了吧。
3. 将文本数据导入数据库:
文本数据的字段数据之间用tab键隔开。
use test;
load data local infile "文件名" into table 表名;
1:使用SHOW语句找出在服务器上当前存在什么数据库:
mysql> SHOW DATABASES;
2:2、创建一个数据库MYSQLDATA
mysql> CREATE DATABASE MYSQLDATA;
3:选择你所创建的数据库
mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!)
4:查看现在的数据库中存在什么表
mysql> SHOW TABLES;
5:创建一个数据库表
mysql> CREATE TABLE MYTABLE (name VARCHAR(20), sex CHAR(1));
6:显示表的结构:
mysql> DESCRIBE MYTABLE;
7:往表中加入记录
mysql> insert into MYTABLE values ("hyq","M");
8:用文本方式将数据装入数据库表中(例如D:/mysql.txt)
mysql> LOAD DATA LOCAL INFILE "D:/mysql.txt" INTO TABLE MYTABLE;
9:导入.sql文件命令(例如D:/mysql.sql)
mysql>use database;
mysql>source d:/mysql.sql;
10:删除表
mysql>drop TABLE MYTABLE;
11:清空表
mysql>delete from MYTABLE;
12:更新表中数据
mysql>update MYTABLE set sex="f" where name='hyq'; 13:备份数据库mysqldump -u root 库名>xxx.data14:

例2:连接到远程主机上的MYSQL
  假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:    

  mysql -h110.110.110.110 -uroot -pabcd123   

  (注:u与root可以不用加空格,其它也一样)   

  3、退出MYSQL命令: exit

一) 连接MYSQL:
   格式: mysql -h主机地址 -u用户名 -p用户密码

1、例1:连接到本机上的MYSQL
   首先在打开DOS窗口,然后进入mysql安装目录下的bin目录下,例如: D:\mysql\bin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是:mysql>
2、例2:连接到远程主机上的MYSQL
   假设远程主机的IP为:10.0.0.1,用户名为root,密码为123。则键入以下命令:
   mysql -h10.0.0.1 -uroot -p123
(注:u与root可以不用加空格,其它也一样)
3、退出MYSQL命令
   exit (回车)

(二) 修改密码:
   格式:mysqladmin -u用户名 -p旧密码 password 新密码
1、例1:给root加个密码123。首先在DOS下进入目录C:\mysql\bin,然后键入以下命令:
   mysqladmin -uroot -password 123
   注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。
2、例2:再将root的密码改为456
   mysqladmin -uroot -pab12 password 456
(三) 增加新用户:(注意:和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符)
   格式:grant select on 数据库.* to 用户名@登录主机 identified by "密码"
   例1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入MYSQL,然后键入以下命令:
   grant select,insert,update,delete on *.* to test1@"%" Identified by "abc";

   但例1增加的用户是十分危险的,你想如某个人知道test1的密码,那么他就可以在internet上的任何一台电脑上登录你的mysql数据库并对你的数据可以为所欲为了,解决办法见例2。
   例2、增加一个用户test2密码为abc,让他只可以在localhost上登录,并可以对数据库mydb进行查询、插入、修改、删除的操作(localhost指本地主机,即MYSQL数据库所在的那台主机),这样用户即使用知道test2的密码,他也无法从internet上直接访问数据库,只能通过MYSQL主机上的web页来访问了。
   grant select,insert,update,delete on mydb.* to test2@localhost identified by "abc";
   如果你不想test2有密码,可以再打一个命令将密码消掉。
   grant select,insert,update,delete on mydb.* to test2@localhost identified by "";
(四) 显示命令
1、显示数据库列表:
   show databases;
   刚开始时才两个数据库:mysql和test。mysql库很重要它里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。
2、显示库中的数据表:
   use mysql; //打开库
   show tables;
3、显示数据表的结构:
   describe 表名;
4、建库:
   create database 库名;
5、建表:
   use 库名;
   create table 表名 (字段设定列表);
6、删库和删表:
   drop database 库名;
   drop table 表名;
7、将表中记录清空:
   delete from 表名;
8、显示表中的记录:
   select * from 表名;



MySQL导入导出命令
1.导出整个数据库
  mysqldump -u 用户名 -p 数据库名 > 导出的文件名
  mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql
2.导出一个表
  mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
  mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql

3.导出一个数据库结构
  mysqldump -u wcnc -p -d --add-drop-table smgp_apps_wcnc >d:wcnc_db.sql
  -d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table

4.导入数据库
  常用source 命令
  进入mysql数据库控制台,
  如mysql -u root -p
  mysql>use 数据库
  然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
  mysql>source d:wcnc_db.sql (注:如果写成source d:\wcnc_db.sql,就会报语法

 

================================================================

修改phpMyAdmin使其能够管理多台远程MySQL服务器[原创

需求背景:
  phpMyAdmin是一款不错的MySQL在线管理工具,但phpMyAdmin的cookie登录方式只能输入MySQL数据库的用户名和密码,而想更改MySQL服务器地址和端口则须修改其配置文件config.default.php。当拥有多台数据库服务器,每台服务器又在不同端口启动了多个MySQL服务,每次都修改配置文件就显得很麻烦,因此需要能够在登录界面直接输入MySQL服务器地址和端口的功能。

功能要求:
  假设phpMyAdmin的访问网址为http://192.168.1.25/phpmyadmin/,能够通过输入MySQL服务器地址、端口、用户名、密码登录远程MySQL服务器,对远程数据库进行管理。

修改后的phpMyAdmin登录入口截图:


下载地址:http://ishare.iask.sina.com.cn/cgi-bin/fileid.cgi?fileid=1848024

实现步骤:

1、打开“路径/phpmyadmin/libraries/config.default.php”,查找相关项并修改为以下内容:

$cfg['Servers'][$i]['host'] = $_COOKIE["mysqlhost"];  $cfg['Servers'][$i]['port'] = $_COOKIE["mysqlport"];  $cfg['Servers'][$i]['auth_type'] = 'cookie';    $cfg['blowfish_secret'] = 'sina';//这里的sina是用来加密cookie的密钥  


2、打开“路径/phpmyadmin/index.php”,在文件最开头增加以下PHP代码:
<?php  if($_POST["mysqlhost"] != "" && $_POST["mysqlport"] != "")  {     setcookie("mysqlhost",$_POST["mysqlhost"]);     setcookie("mysqlport",$_POST["mysqlport"]);  }  ?>  


3、打开“路径/phpmyadmin/libraries/auth/cookie.auth.lib.php”,查找“<!-- Login form -->”这行,在该行下方的第10行后(即“<?php } ?>”这行后)增加以下HTML代码:
<div class="item">      <label for="input_username">服务器地址:</label>      <input type="text" name="mysqlhost" id="mysqlhost" value="<?=$_COOKIE["mysqlhost"];?>" size="24" class="textfield" />  </div>  <div class="item">      <label for="input_username">MySQL端口:</label>      <input type="text" name="mysqlport" id="mysqlport" value="<?=$_COOKIE["mysqlport"];?>" size="24" class="textfield" />  </div>  

图示:



4、创建一个可以从任何IP地址远程连接的MySQL帐号sina

  MySQL默认的帐号为root,密码为空,只允许localhost登录,因此需要创建一个可以从任何IP地址远程连接的MySQL帐号,本例中创建的帐号为sina,密码为zhangyan。使用该帐号从phpMyAdmin登录后,别忘了在“权限”栏中修改密码。

(1)、Linux下的MySQL命令行客户端添加帐号示例:
A.登录使用默认3306端口的MySQL
引用
/usr/local/mysql/bin/mysql -u root -p


B.通过TCP连接管理不同端口的多个MySQL(注意:MySQL4.1以上版本才有此项功能)
引用
/usr/local/mysql/bin/mysql -u root -p --protocol=tcp --host=localhost --port=3307


C.通过socket套接字管理不同端口的多个MySQL
引用
/usr/local/mysql/bin/mysql -u root -p --socket=/tmp/mysql3307.sock


D.通过端口和IP管理不同端口的多个MySQL
引用
/usr/local/mysql/bin/mysql -u root -p -P 3306 -h 127.0.0.1


Enter password: (输入密码,如果密码为空,直接回车)
mysql> (在这儿输入以下的语句)
引用
GRANT ALL PRIVILEGES ON *.* TO 'sina'@'%' IDENTIFIED BY 'zhangyan';

如果提示信息为Query OK, 0 rows affected (0.01 sec),表示执行成功。

(2)、Windows下的MySQL命令行客户端添加帐号示例:
A.管理使用默认3306端口的MySQL
引用
d:\apmserv\mysql\bin\mysql.exe -u root -p


B.管理不同端口的多个MySQL
引用
d:\apmserv\mysql\bin\mysql.exe -u root -p --port=3307


Enter password: (输入密码,如果密码为空,直接回车)
mysql> (在这儿输入以下的语句)
引用
GRANT ALL PRIVILEGES ON *.* TO sina@"%";

如果提示信息为Query OK, 0 rows affected (0.01 sec),表示执行成功。

==============================================================

本地phpmyadmin访问远程mysql数据库

本地phpmyadmin远程连接服务器端MySQL 首先要确定你的mysql远程连接已开启,如果没有开启按照下面的二个方法操作:

方法一:改表法

因为在linux环境下,默认是关闭3306端口远程连接的,需要开启,如果你装mysql数据库时开启了3306就OK了。

默认mysql帐号不允许从远程登陆,只允许localhost访问。登入mysql后,更改 "mysql" 数据库 里的 "user"(远程数据库的名称) 表里的 "host" 项,把"localhost"改称"%" 。这样你的mysql就可以远程操作了。

update user set host = '%' where user = 'root';   

注意:这样方法只是把本机localhost访问改为了"%"所有地址IP都可以访问mysql服务器,这样很不安全。默认localhost访问的时候有所有操作权限。所以不安全!推荐用第二个方法。

方法二:授权法 (推荐使用)

(1)SQL语句:

grant select,insert,update,delete on *.* to " Identified by "password";

允许地址IP上root用户,密码dboomysql来连接mysql的所有数据库,只付给select,insert,update,delete权限。 这样比较安全。如果只允许IP(192.168.1.1)上root用户
访问更安全,操作(2)

(2)SQ语句:

grant select,insert,update,delete on *.* to " Identified by "password";
只允许地址IP(192.168.1.1)上root用户访问更安全了。

(3)

grant all on *.* to " Identified by "password"

允许地址192.168.1.1上用root用户,密码password来连接mysql的所有数据库,付给所有权限。不太安全。

现在重启mysql服务,如果你的服务器上安装了防火墙,看看3306端口开启没,如果没需要开启3306端口才能用了,在linux下要开启防火墙 打开3306 端口,编辑这个文件vi /etc/sysconfig/iptables

输入

-A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

保存后在控制台输入 /etc/init.d/iptables restart  重启防火墙,记得一定要重启防火墙。
 

配置好本地PHP环境,下载PHPMYADMIN

方法一:

(一)、下载phpmyadmin

http://www.phpmyadmin.net/home_page/index.php

(二)、修改libraries文件夹下的config.default.php文件或者phpmyadmin根目录的config.inc.php文件。

1、查找$cfg['PmaAbsoluteUri'] ,将其值设置为你本地的phpmyadmin路径

2、查找$cfg['Servers'][$i]['host'] , 将其值设置为你mysql数据库地址,例如127.0.0.1

3、查找$cfg['Servers'][$i]['user'] , 将其值设置为你mysql数据库用户名,例如admin

4、查找$cfg['Servers'][$i]['password'] , 将其值设置为你mysql数据库密码,例如admin

(三)、在本地访问phpmyadmin 可查看远程mysql数据库,phpMyAdmin 3.3.1只需要修改 $cfg['Servers'][$i]['host']的值,用户名密码 访问phpmyadmin时输入。

方法二:

1,在浏览器中输入:http://localhost/phpmyadmin/setup/

2,点击“新建服务器” ,填写表单:

服务器名称:主机名称

服务器主机名:主机IP

认证方式:config

config 认证方式的用户名:用户名

config 认证方式的密码:用户密码

3,保存后返回setup界面,点击下载,下载的文件为 config.inc.php

4,将下载的文件 config.inc.php 复制到 /usr/share/phpmyadmin/ 目录下

 

5,编辑 /usr/share/phpmyadmin/config.inc.php

添加以下代码

/* Server: localhost [1] */

$i++;

$cfg['Servers'][$i]['verbose'] = '主机名称';

$cfg['Servers'][$i]['host'] = '主机IP';

$cfg['Servers'][$i]['port'] = '';

$cfg['Servers'][$i]['socket'] = '';

$cfg['Servers'][$i]['connect_type'] = 'tcp';

$cfg['Servers'][$i]['extension'] = 'mysqli';

$cfg['Servers'][$i]['auth_type'] = 'config';

$cfg['Servers'][$i]['user'] = '用户名';

$cfg['Servers'][$i]['password'] = '密码';

本文关键字:phpmyadmin  mysql数据库 



原创粉丝点击