mysql 部分命令及用法

2016年8月5日 0 条评论 1.8k 次阅读 0 人点赞

mysql命令行操作:

#登录mysql
[root@18d ~]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
#查看数据库
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sevenfal           |
+--------------------+
4 rows in set (0.00 sec)
#操作数据库
mysql> use sevenfal;
Database changed
#查看表
mysql> show tables;
+-------------------------+
| Tables_in_sevenfal      |
+-------------------------+
| user | 
+-------------------------+
1 rows in set (0.00 sec)
#查看表结构
mysql> show columns from user;
+------------------------+-----------------------------------+------+-----+---------+-------+
| Field                  | Type                              | Null | Key | Default | Extra |
+------------------------+-----------------------------------+------+-----+---------+-------+
| Host                   | char(60)                          | NO   | PRI |         |       |
| User                   | char(16)                          | NO   | PRI |         |       |
| Password               | char(41)                          | NO   |     |         |       |
+------------------------+-----------------------------------+------+-----+---------+-------+
42 rows in set (0.00 sec)
#查看值
mysql> select host,user,password from user;
+-----------+----------+-------------------------------------------+
| host      | user     | password                                  |
+-----------+----------+-------------------------------------------+
| localhost | root     | * |
| 127.0.0.1 | root     | * |
| ::1       | root     | * |
| localhost | sevenfal | * |
| localhost | ss       | * |
| 127.0.0.1 | sevenfal | * |
+-----------+----------+-------------------------------------------+
6 rows in set (0.01 sec)
#修改项值(修改mysql数据库中user表的root所在行host列的值为‘%’,即允许从任意位置登录)
mysql> update user set host = '%' where user = 'root' 录

mysql导出导入:

#方法一
#cmd 到mysql bin目录下用 如下命令 mysqldump --opt -h192.168.0.156 -uusername -ppassword --skip-lock-tables databasename>database.sql   
#  把ip改成localhost就可以的
#  如果装了navicate那就更简单了 先连接上数据库,选中数据库 再选择转储sql 就好了
#方法二
#进入cmd (注意在os cmd中 而不是在mysql中)
#  ===================
#  1.导出数据库(sql脚本)  
  mysqldump -u 用户名 -p 数据库名 > 导出的文件名
  mysqldump -u root -p db_name > test_db.sql
#  2.mysql导出数据库一个表
  mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
  mysqldump -u wcnc -p test_db users> test_users.sql (结尾没有分号)
#方法三
#启动mysql服务
/etc/init.d/mysql start
#导出整个数据库
mysqldump dbname > c:mydb.sql -u root -p 
#导入数据库
source mydb.sql
mysql -u用户名 -p 数据库名 < 数据库名.sql
#更详细的导入数据库教程
#2.1. 导出sql脚本
#在原数据库服务器上,可以用php教程myadmin工具,或者mysqldump(mysqldump命令位于mysql/bin/目录中)命令行,导出sql脚本。
#2.1.1 用phpmyadmin工具
#导出选项中,选择导出"结构"和"数据",不要添加"drop database"和"drop table"选项。
#选中"另存为文件"选项,如果数据比较多,可以选中"gzipped"选项。
#将导出的sql文件保存下来。
#2.1.2 用mysqldump命令行
#命令格式
mysqldump -u用户名 -p 数据库名 > 数据库名.sql
#范例:
mysqldump -uroot -p abc > abc.sql
#(导出数据库abc到abc.sql文件)
#提示输入密码时,输入该数据库用户名的密码。
#2.2. 创建空的数据库
#通过主控界面/控制面板,创建一个数据库。假设数据库名为abc,数据库全权用户为abc_f。
#2.3. 将sql脚本导入执行
#同样是两种方法,一种用phpmyadmin(mysql数据库管理)工具,或者mysql命令行。
#2.3.1 用phpmyadmin工具
#从控制面板,选择创建的空数据库,点"管理",进入管理工具页面。
#在"sql"菜单中,浏览选择刚才导出的sql文件,点击"执行"以上载并执行。
#注意:phpmyadmin对上载的文件大小有限制,php本身对上载文件大小也有限制,如果原始sql文件
#比较大,可以先用gzip对它进行压缩,对于sql文件这样的文本文件,可获得1:5或更高的压缩率。
#gzip使用方法:
# gzip xxxxx.sql
#得到
#xxxxx.sql.gz文件。
#2.3.2 用mysql命令行
#命令格式
mysql -u用户名 -p 数据库名 < 数据库名.sql
#范例:
mysql -uabc_f -p abc < abc.sql
#(导入数据库abc从abc.sql文件)
#提示输入密码时,输入该数据库用户名的密码。法

MySQL创建用户与授权方法:

一, 创建用户: 

命令:

CREATE USER 'username'@'host' IDENTIFIED BY 'password';

说明:username - 你将创建的用户名, host - 指定该用户在哪个主机上可以登陆,如果是本地用户可用localhost, 如果想让该用户可以从任意远程主机登陆,可以使用通配符%. password - 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登陆服务器. 

例子: 

CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456'; 
CREATE USER 'pig'@'192.168.1.101_' IDENDIFIED BY '123456'; 
CREATE USER 'pig'@'%' IDENTIFIED BY '123456'; 
CREATE USER 'pig'@'%' IDENTIFIED BY ''; 
CREATE USER 'pig'@'%';

二,授权: 

 命令:

GRANT privileges ON databasename.tablename TO 'username'@'host'

说明: privileges - 用户的操作权限,如SELECT , INSERT , UPDATE 等(详细列表见该文最后面).如果要授予所的权限则使用ALL.;databasename - 数据库名,tablename-表名,如果要授予该用户对所有数据库和表的相应操作权限则可用*表示, 如*.*. 

例子: 

GRANT SELECT, INSERT ON test.user TO 'pig'@'%'; 
GRANT ALL ON *.* TO 'pig'@'%';

注意:用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令: 

GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;

三.设置与更改用户密码 

命令:

SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');

如果是当前登陆用户用SET PASSWORD = PASSWORD("newpassword"); 

例子: 

SET PASSWORD FOR 'pig'@'%' = PASSWORD("123456");

四.撤销用户权限 

命令: 

REVOKE privilege ON databasename.tablename FROM 'username'@'host';

说明: privilege, databasename, tablename - 同授权部分. 

例子: 

REVOKE SELECT ON *.* FROM 'pig'@'%';

注意: 假如你在给用户'pig'@'%'授权的时候是这样的(或类似的):GRANT SELECT ON test.user TO 'pig'@'%', 则在使用REVOKE SELECT ON *.* FROM 'pig'@'%';命令并不能撤销该用户对test数据库中user表的SELECT 操作.相反,如果授权使用的是GRANT SELECT ON *.* TO 'pig'@'%';则REVOKE SELECT ON test.user FROM 'pig'@'%';命令也不能撤销该用户对test数据库中user表的Select 权限. 

具体信息可以用命令SHOW GRANTS FOR 'pig'@'%'; 查看. 

五.删除用户 

命令: 

DROP USER 'username'@'host';

附表:在MySQL中的操作权限 

ALTER Allows use of ALTER TABLE.
ALTER ROUTINE Alters or drops stored routines.
CREATE Allows use of CREATE TABLE.
CREATE ROUTINE Creates stored routines.
CREATE TEMPORARY TABLE Allows use of CREATE TEMPORARY TABLE.
CREATE USER Allows use of CREATE USERDROP USERRENAME USER, and REVOKE ALL PRIVILEGES.
CREATE VIEW Allows use of CREATE VIEW.
DELETE Allows use of DELETE.
DROP Allows use of DROP TABLE.
EXECUTE Allows the user to run stored routines.
FILE Allows use of SELECT..INTO OUTFILE and LOAD DATA INFILE.
INDEX Allows use of CREATE INDEX and DROP INDEX.
INSERT Allows use of INSERT.
LOCK TABLES Allows use of LOCK TABLES on tables for which the user also has SELECT privileges.
PROCESS Allows use of SHOW FULL PROCESSLIST.
RELOAD Allows use of FLUSH.
REPLICATION Allows the user to ask where slave or master
CLIENT servers are.
REPLICATION SLAVE Needed for replication slaves.
SELECT Allows use of SELECT.
SHOW DATABASES Allows use of SHOW DATABASES.
SHOW VIEW Allows use of SHOW CREATE VIEW.
SHUTDOWN Allows use of mysqladmin shutdown.
SUPER Allows use of CHANGE MASTERKILLPURGE MASTER LOGS, and SET GLOBAL SQL statements. Allows mysqladmin debug command. Allows one extra connection to be made if maximum connections are reached.
UPDATE Allows use of UPDATE.
USAGE Allows connection without any specific privileges.

参考资料:

http://www.jbxue.com/db/15478.html

http://www.111cn.net/database/mysql/33830.htm

http://www.jb51.net/article/31850.htm

其他常用命令

# 查询所有表包含的条目数量
select table_name,table_rows from information_schema.tables where TABLE_SCHEMA = '数据库名称' order by table_rows desc;

Sevenfal

这个人太懒什么东西都没留下

文章评论(0)