搜索
首页数据库mysql教程mysql命令行集锦

mysql命令行集锦

Jun 07, 2016 pm 03:53 PM
mysql命令行数据库查看

查看当前 mysql 数据库支持的字符集 mysql show character set; 查看当前数据库的字符集: mysqlshow variables like '%char%'; 一、连接MYSQL 式: mysql -h主机地址 -u用户名 -p用户密码 或者: mysql -u 用户名 -p // 回车后要求输入密码,密码不可见 1

查看当前mysql数据库支持的字符集 
mysql> show character set; 

查看当前数据库的字符集:

mysql>show variables like '%char%';


一、连接MYSQL

格式: mysql -h主机地址 -u用户名 -p用户密码

或者: mysql -u 用户名 -p // 回车后要求输入密码,密码不可见

1、连接到本机上的MYSQL。
首先打开DOS窗口,然后进入目录mysql\bin,再键入命令mysql -u root -p,回车后提示你输密码.注意用户名前可以有空格也可以没有空格,但是如果-p后带有用户密码,那么-p与密码之间必须没有空格,否则让你重新输入密码.例如以下都是合法的登陆:(帐号:root   密码:123)
mysql -u root -p
mysql -uroot -p
mysql -uroot -p123


如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是: mysql>

2、连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:
mysql -h110.110.110.110 -u root -p123;(注:u与root之间可以不用加空格,其它也一样)

mysql -u admin -p123 -h 192.168.1.130

3、退出MYSQL命令: exit (回车)

二、修改密码。

格式:mysqladmin -u用户名 -p旧密码 password 新密码

1、给root加个密码ab12。首先在DOS下进入目录mysql\bin,然后键入以下命令
    mysqladmin -u root -password ab12
    注:因为开始时root没有密码,所以-p旧密码一项就可以省略了。

2、再将root的密码改为djg345。
    mysqladmin -u root -p ab12 password djg345

(注意:和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符)

3、命令行修改root密码:
    mysql> UPDATE mysql.user SET password=PASSWORD(’新密码’) WHERE User=’root’;
    mysql> FLUSH PRIVILEGES;

4、显示当前的user:
mysql> SELECT USER();


三、增加新用户。

格式:grant select on 数据库.* to 用户名@登录主机 identified by “密码”

1、增加一个用户test1密码为abc,让他可以在任何主机上登录,并对所有数据库有查询、插入、修改、删除的权限。首先用root用户连入

MYSQL,然后键入以下命令:
grant select,insert,update,delete on *.* to test1”%" Identified by “abc”;
但增加的用户是十分危险的,你想如某个人知道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 identifiedby “abc”;
如果你不想test2有密码,可以再打一个命令将密码消掉。
grant select,insert,update,delete on mydb.* to test2@localhost identified by “”;

四、操作技巧

1、如果你打命令时,回车后发现忘记加分号,你无须重打一遍命令,只要打个分号回车就可以了。
也就是说你可以把一个完整的命令分成几行来打,完后用分号作结束标志就OK。

2、你可以使用光标上下键调出以前的命令。

五、对数据库的操作

1、显示当前数据库服务器中的数据库列表:
mysql> SHOW DATABASES;
注意:mysql库里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。

2、显示数据库中的数据表:
mysql> USE 库名;
mysql> SHOW TABLES;

3、显示数据库定义
show create database yourDB;

4、显示use的数据库名:
mysql> SELECT DATABASE();

5、建立数据库:
mysql> CREATE DATABASE 库名;

6、删除数据库:
mysql> DROP DATABASE 库名;

7、导入.sql文件命令:
mysql> USE 数据库名;
mysql> SOURCE d:/mysql.sql;

也可以在DOS环境下键入以下命令进行导入:
mysql -uroot -proot databasename 注意:导入前请保证mysql中必须有databasename这个数据库;


8,创建试图:create view  视图名称 select * from ....

    删除视图:drop view 视图名称

  查看创建的视图:show create view 视图名称;

六、备份数据库:


在MySQL中不论是新建数据库还是新建数据表,都要加上参数 default character set utf8。这样建立的表就避免了日后应用时的麻烦。


注意,mysqldump命令在DOS的 mysql\bin 目录下执行,不能在mysql环境下执行,因此,不能以分号“;”结尾。若已登陆mysql,请运行退出命令mysql> exit

1.导出整个数据库
导出文件默认是存在mysql\bin目录下
mysqldump -u用户名 -p数据库名 > 导出的文件名
mysqldump -u  root -p123456 database_name > outfile_name.sql



mysqldump -h host -u user -ppasword --default-character-set=latin1 --skip-opt -B database 

--tables tablename > old.sql

  --skip-opt 参数不能缺少,如缺少则生成的脚本里insert语句太大,导入时可能会出现错误提示:

  ERROR 1153 (08S01) at line xxx: Got a packet bigger than 'max_allowed_packet' bytes

  加上这个参数,每条记录只对应一个insert语句,虽然导出的文件大一些,但防止了出错。


    

   执行备份数据库表结构时,指定了 --skip-opt 选项,相当于禁用下面几个参数:

--add-drop-table, --add-locks,
--create-options, --quick, --extended-insert,
--lock-tables, --set-charset, and --disable-keys

选项 --create-option 看起来比较不起眼:

  -a, --create-options 
      Include all MySQL specific create options.

事实上,如果把它disable的话,备份出来的表结构,会少了:

AUTO_INCREMENT   --PK字段的AUTO_INCREMENT属性以及数据表的AUTO_INCREMENT属性都会丢掉
ENGINE=InnoDB DEFAULT CHARSET=utf8  --数据表的引擎、字符集属性


  参考:http://doc.chinaunix.net/mysql/200912/128997_2.shtml

2.导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldump -u user_name -p database_name table_name > outfile_name.sql

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


mysqldump -u root -p123 -h192.168.1.130 -d >c:/msyql.sql  (-d表示不带数据的)

4.带语言参数导出
mysqldump -uroot -p –default-character-set=latin1 –set-charset=gbk –skip-opt database_name > outfile_name.sql

七、将文本数据转到数据库中

1、文本数据应符合的格式:字段数据之间用tab键隔开,null值用\n来代替.例:
3 rose 大连二中 1976-10-10
4 mike 大连一中 1975-12-23
假设你把这两组数据存为school.txt文件,放在c盘根目录下。

2、数据传入命令 
mysql> load data local infile "c:\school.txt" into table 表名;
注意:你最好将文件复制到mysql\bin目录下,并且要先用use命令打表所在的库。

八、对表的操作

1、显示数据表的结构:
mysql> DESCRIBE 表名; (DESC 表名)

2、建立数据表:
mysql> USE 库名; //进入数据库
mysql> CREATE TABLE 表名 (字段名 VARCHAR(20), 字段名 CHAR(1));

3、删除数据表:
mysql> DROP TABLE 表名;

4、重命名数据表
alter table t1 rename t2;

5、显示表中的记录:
mysql> SELECT * FROM 表名;

6、往表中插入记录:
mysql> INSERT INTO 表名 VALUES (”hyq”,”M”);

7、更新表中数据:
mysql-> UPDATE 表名 SET 字段名1=’a',字段名2=’b’ WHERE 字段名3=’c';

连接字段处理:

update category set attribute_group=CONCAT(attribute_group,',6') where category_id=149;//在原有attribute_group的基础后面加上6

8、将表中记录清空:
mysql> DELETE FROM 表名;

9、用文本方式将数据装入数据表中:
mysql> LOAD DATA LOCAL INFILE “D:/mysql.txt” INTO TABLE 表名;


mysql>Load Data InFile “D:/mysql.txt” INTO TABLE 表名;

10、 显示表的定义,还可以看到表的约束,例如外键

mysql> SHOW CREATE TABLE yourtablename   ; 
    还可以通过 mysqldump 将表的完整定义转储到文件中,当然包括外键定义。     
       
    还可以通过下面的指令列出表 T 的外键约束:     
mysql> SHOW TABLE STATUS FROM yourdatabasename LIKE 'T'   
外键约束将会在表注释中列出。

存储过程

11、创建存储过程

CREATE PROCEDURE procedureName (in paramentName type, in paramentName type,……)
BEGIN
SQL sentences;
END

12、调用存储过程
mysql> CALL procedureName(paramentList);

例:mysql> CALL addMoney(12, 500);

13、查看特定数据库的存储过程
方法一:mysql> SELECT `name` FROM mysql.proc WHERE db = 'your_db_name' AND `type` = 'PROCEDURE';
方法二:mysql> show procedure status;

14、删除存储过程
mysql> DROP PROCEDURE procedure_name;
mysql> DROP PROCEDURE IF EXISTS procedure_name;

15、查看指定的存储过程定义
mysql> SHOW CREATE PROCEDURE proc_name;
mysql> SHOW CREATE FUNCTION func_name;

---------- 示例一-----------
mysql> DELIMITER $$   
mysql> USE `db_name`$$   //选择数据库
mysql> DROP PROCEDURE IF EXISTS `addMoney`$$   //如果存在同名存储过程,则删除之
mysql> CREATE DEFINER= `root`@`localhost` PROCEDURE `addMoney`(IN xid INT(5),IN xmoney INT(6))   
mysql> BEGIN 
mysql> UPDATE USER u SET u.money = u.money + xmoney WHERE u.id = xid;   //分号";"不会导致语句执行,因为当前的分割符被定义为$$
mysql> END$$   //终止
mysql> DELIMITER ;    //把分割符改回分号";"

mysql> call addMoney(5,1000); //执行存储过程

---------- 示例二-----------
mysql> delimiter // 
mysql> create procedure proc_name (in parameter integer) 
mysql> begin 
mysql> if parameter=0 then 
mysql> select * from user order by id asc; 
mysql> else 
mysql> select * from user order by id desc; 
mysql> end if; 
mysql> end; 
mysql> //        //此处“//”为终止符
mysql> delimiter ; 
mysql> show warnings; 
mysql> call proc_name(1); 
mysql> call proc_name(0);


九、修改database 、table的操作

1、为了改变列a,从INTEGER改为TINYINT NOT NULL(名字一样),
并且改变列b,从CHAR(10)改为CHAR(20),同时重命名它,从b改为c:
mysql> ALTER TABLE t2 MODIFY a TINYINT NOT NULL, CHANGE b c CHAR(20);

2、增加一个新TIMESTAMP列,名为d:
mysql> ALTER TABLE t2 ADD d TIMESTAMP;


alter table comments add isShow TINYINT(1) default 1 not null comment '1:显示,2:删除,3:不显示'

3、在列d上增加一个索引,并且使列a为主键:
mysql> ALTER TABLE t2 ADD INDEX (d), ADD PRIMARY KEY (a);

//添加字段并设置主键

ALTER TABLE tabelname ADD new_field_id int(5) unsigned default 0 not null auto_increment ,ADD primary key (new_field_id);

alter table customers modify id id int not null auto_increment primary key;
声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
MySQL的位置:数据库和编程MySQL的位置:数据库和编程Apr 13, 2025 am 12:18 AM

MySQL在数据库和编程中的地位非常重要,它是一个开源的关系型数据库管理系统,广泛应用于各种应用场景。1)MySQL提供高效的数据存储、组织和检索功能,支持Web、移动和企业级系统。2)它使用客户端-服务器架构,支持多种存储引擎和索引优化。3)基本用法包括创建表和插入数据,高级用法涉及多表JOIN和复杂查询。4)常见问题如SQL语法错误和性能问题可以通过EXPLAIN命令和慢查询日志调试。5)性能优化方法包括合理使用索引、优化查询和使用缓存,最佳实践包括使用事务和PreparedStatemen

MySQL:从小型企业到大型企业MySQL:从小型企业到大型企业Apr 13, 2025 am 12:17 AM

MySQL适合小型和大型企业。1)小型企业可使用MySQL进行基本数据管理,如存储客户信息。2)大型企业可利用MySQL处理海量数据和复杂业务逻辑,优化查询性能和事务处理。

幻影是什么读取的,InnoDB如何阻止它们(下一个键锁定)?幻影是什么读取的,InnoDB如何阻止它们(下一个键锁定)?Apr 13, 2025 am 12:16 AM

InnoDB通过Next-KeyLocking机制有效防止幻读。1)Next-KeyLocking结合行锁和间隙锁,锁定记录及其间隙,防止新记录插入。2)在实际应用中,通过优化查询和调整隔离级别,可以减少锁竞争,提高并发性能。

mysql:不是编程语言,而是...mysql:不是编程语言,而是...Apr 13, 2025 am 12:03 AM

MySQL不是一门编程语言,但其查询语言SQL具备编程语言的特性:1.SQL支持条件判断、循环和变量操作;2.通过存储过程、触发器和函数,用户可以在数据库中执行复杂逻辑操作。

MySQL:世界上最受欢迎的数据库的简介MySQL:世界上最受欢迎的数据库的简介Apr 12, 2025 am 12:18 AM

MySQL是一种开源的关系型数据库管理系统,主要用于快速、可靠地存储和检索数据。其工作原理包括客户端请求、查询解析、执行查询和返回结果。使用示例包括创建表、插入和查询数据,以及高级功能如JOIN操作。常见错误涉及SQL语法、数据类型和权限问题,优化建议包括使用索引、优化查询和分表分区。

MySQL的重要性:数据存储和管理MySQL的重要性:数据存储和管理Apr 12, 2025 am 12:18 AM

MySQL是一个开源的关系型数据库管理系统,适用于数据存储、管理、查询和安全。1.它支持多种操作系统,广泛应用于Web应用等领域。2.通过客户端-服务器架构和不同存储引擎,MySQL高效处理数据。3.基本用法包括创建数据库和表,插入、查询和更新数据。4.高级用法涉及复杂查询和存储过程。5.常见错误可通过EXPLAIN语句调试。6.性能优化包括合理使用索引和优化查询语句。

为什么要使用mysql?利益和优势为什么要使用mysql?利益和优势Apr 12, 2025 am 12:17 AM

选择MySQL的原因是其性能、可靠性、易用性和社区支持。1.MySQL提供高效的数据存储和检索功能,支持多种数据类型和高级查询操作。2.采用客户端-服务器架构和多种存储引擎,支持事务和查询优化。3.易于使用,支持多种操作系统和编程语言。4.拥有强大的社区支持,提供丰富的资源和解决方案。

描述InnoDB锁定机制(共享锁,独家锁,意向锁,记录锁,间隙锁,下一键锁)。描述InnoDB锁定机制(共享锁,独家锁,意向锁,记录锁,间隙锁,下一键锁)。Apr 12, 2025 am 12:16 AM

InnoDB的锁机制包括共享锁、排他锁、意向锁、记录锁、间隙锁和下一个键锁。1.共享锁允许事务读取数据而不阻止其他事务读取。2.排他锁阻止其他事务读取和修改数据。3.意向锁优化锁效率。4.记录锁锁定索引记录。5.间隙锁锁定索引记录间隙。6.下一个键锁是记录锁和间隙锁的组合,确保数据一致性。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前By尊渡假赌尊渡假赌尊渡假赌

热工具

Atom编辑器mac版下载

Atom编辑器mac版下载

最流行的的开源编辑器

ZendStudio 13.5.1 Mac

ZendStudio 13.5.1 Mac

功能强大的PHP集成开发环境

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

WebStorm Mac版

WebStorm Mac版

好用的JavaScript开发工具

VSCode Windows 64位 下载

VSCode Windows 64位 下载

微软推出的免费、功能强大的一款IDE编辑器