Linux系统下MySQL数据库常用命令总结 - MySQL - 服务器之家

服务器之家

专注于服务器技术!
当前位置:首页 > 数据库服务器 > MySQL

Linux系统下MySQL数据库常用命令总结

发布时间:2014-04-14 来源:服务器之家

1.linux下启动mysql的命令:
  mysqladmin start
  /ect/init.d/mysql start (前面为mysql的安装路径)
  2.linux下重启mysql的命令:
  mysqladmin restart
  /ect/init.d/mysql restart (前面为mysql的安装路径)
  3.linux下关闭mysql的命令:
  mysqladmin -u root -p密码 shutdown
  /ect/init.d/mysql shutdown (前面为mysql的安装路径)
  4.连接本机上的mysql:
  进入目录mysqlbin,再键入命令mysql -uroot -p, 回车后提示输入密码。
  退出mysql命令:exit(回车)
  5.修改mysql密码:
  mysqladmin -u用户名 -p旧密码 password 新密码
  或进入mysql命令行SET PASSWORD FOR '用户名'@'主机' = PASSWORD(‘密码');
  GRANT USAGE ON *.* TO '用户名'@'主机' IDENTIFIED BY 'biscuit';
  修改自己的密码SET PASSWORD = PASSWORD('biscuit');
  6.增加新用户。(注意:mysql环境中的命令后面都带一个分号作为命令结束符)
  grant all privileges on *.* to 用户名@'%' identified by '密码' with grant option;
  flush privileges;(刷新权限设置)
  grant select on 数据库.* to 用户名@登录主机 identified by "密码"
  如增加一个用户test密码为123,让他可以在任何主机上登录, 并对所有数据库有查询、插入、修改、删除的权限。首先用以root用户连入mysql,然后键入以下命令:
  grant select,insert,update,delete on *.* to " Identified by "123";
  7.跳过授权访问mysql
  mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
  二、有关mysql数据库方面的操作
  必须首先登录到mysql中,有关操作都是在mysql的提示符下进行,而且每个命令以分号结束
  1、显示数据库列表。
  show databases;
  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 表名;
  9、编码的修改
  如果要改变整个mysql的编码格式:
  启动mysql的时候,mysqld_safe命令行加入
  --default-character-set=gbk
  如果要改变某个库的编码格式:在mysql提示符后输入命令
  alter database db_name default character set gbk;
  三、数据的导入导出
  1、文本数据转到数据库中
  文本数据应符合的格式:字段数据之间用tab键隔开,null值用来代替。例:
  1 name duty 2006-11-23
  数据传入命令 load data local infile "文件名" into table 表名;
  2、导出数据库和表
  mysqldump --opt news > news.sql(将数据库news中的所有表备份到news.sql文件,news.sql是一个文本文件,文件名任取。)
  mysqldump --opt news author article >author.article.sql(将数据库news中的author表和article表备份到author.article.sql文 件,author.article.sql是一个文本文件,文件名任取。)
  mysqldump --databases db1 db2 > news.sql(将数据库dbl和db2备份到news.sql文件,news.sql是一个文本文件,文件名任取。)
  mysqldump -h host -u user -p pass --databases dbname > file.dump
  就是把host上的以名字user,口令pass的数据库dbname导入到文件file.dump中
  mysqldump --all-databases > all-databases.sql(将所有数据库备份到all-databases.sql文件,all-databases.sql是一个文本文件,文件名任取。)
  3、导入数据
  mysql
  mysql -u root -p fukai –force
  mysql>source news.sql;(在mysql命令下执行,可导入表)
  MySQLimport的常用选项介绍:
  -d or --delete 新数据导入数据表中之前删除数据数据表中的所有信息
  -f or --force 不管是否遇到错误,MySQLimport将强制继续插入数据
  -i or --ignore MySQLimport跳过或者忽略那些有相同唯一关键字的行, 导入文件中的数据将被忽略。
  -l or -lock-tables 数据被插入之前锁住表,这样就防止了,你在更新数据库时,用户的查询和更新受到影响。
  -r or -replace 这个选项与-i选项的作用相反;此选项将替代表中有相同唯一关键字的记录。
  --fields-enclosed- by= char 指定文本文件中数据的记录时以什么括起的, 很多情况下数据以双引号括起。 默认的情况下数据是没有被字符括起的。
  --fields-terminated- by=char 指定各个数据的值之间的分隔符,在句号分隔的文件中,分隔符是句号。您可以用此选项指定数据之间的分隔符。
  默认的分隔符是跳格符(Tab)
  --lines-terminated- by=str 此选项指定文本文件中行与行之间数据的分隔字符串或者字符。 默认的情况下MySQLimport以newline为行分隔符。
  您可以选择用一个字符串来替代一个单个的字符:
  一个新行或者一个回车。
  MySQLimport命令常用的选项还有-v 显示版本(version),-p 提示输入密码(password)
  例子:导入一个以逗号为分隔符的文件
  文件中行的记录格式是这样的:
  "1", "ORD89876", "1 Dozen Roses", "19991226"
  我们的任务是要把这个文件里面的数据导入到数据库Meet_A_Geek中的表格Orders中,我们使用这个命令:
  bin/MySQLimport –prl –fields-enclosed-by=" –fields-terminated-by=, Meet_A_Geek Orders.txt
  一、连接MySQL
  格式: mysql -h主机地址 -u用户名 -p用户密码
  1、例1:连接到本机上的MYSQL。
  首先在打开DOS窗口,然后进入目录 mysqlbin,再键入命令mysql -uroot -p,回车后提示你输密码,如果刚安装好MYSQL,超级用户root是没有密码的,故直接回车即可进入到MYSQL中了,MYSQL的提示符是: mysql>。
  2、例2:连接到远程主机上的MYSQL。假设远程主机的IP为:110.110.110.110,用户名为root,密码为abcd123。则键入以下命令:
  mysql -h110.110.110.110 -uroot -pabcd123
  (注:u与root可以不用加空格,其它也一样)
  3、退出MYSQL命令: exit (回车)。
  mysql常用维护命令
  1、show global status;列出MySQL服务器运行各种状态值
  2、show variables;查询MySQL服务器配置信息语句
  3、查看慢查询
  show variables like '%slow%';
  show global status like '%slow%';
  4、最大连接数
  show variables like 'max_connections';MySQL服务器最大连接数
  show global status like 'Max_used_connections'; 服务器响应的最大连接数
  5、查看表结构
  desc Tablename;
  describe Tablename;
  show columns from Tablename;
  show create table Tablename;
+-------+----------+------+-----+---------+----------------+
| Field | Type     | Null | Key | Default | Extra          |
+-------+----------+------+-----+---------+----------------+
| ID    | int(3)   | NO   | PRI | NULL    | auto_increment |
| xb    | char(10) | YES  |     | NULL    |                |
| nl    | int(3)   | YES  |     | NULL    |                |
| rq    | date     | YES  |     | NULL    |                |
+-------+----------+------+-----+---------+----------------+
mysql 创建用户方法
sOso 发表于 2006-10-13 12:40:49
命令方式的.注意每行后边都跟个 ; 表示一个命令语句结束.
格式: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 "";