茅屋为秋风 发表于 2018-9-30 13:04:37

mysql基本操作讲解

  1、登录mysql的几种方式:
  #mysql -uroot -p123456    使用socket连接登录;
  查看socket文件位置    ps -aux | grep mysqld
# ps aux |grep mysqld  
root       9410.00.1   62681416 ?      S    21:01   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql --pid-file=/data/mysql/localhost.localdomain.pid
  
mysql   10560.04.4 392208 45456 ?      Sl   21:01   0:01 /usr/local/mysql/bin/mysqld --basedir=/usr/local/mysql --datadir=/data/mysql --user=mysql --log-error=/data/mysql/localhost.localdomain.err --pid-file=/data/mysql/localhost.localdomain.pid --socket=/tmp/mysql.sock --port=3306
  指定socket文件位置的方法:/etc/my.cnf配置文件、编译的时候
  #mysql -uroot -p123456 -S /socket文件的路径    使用指定socket文件登录;
  # /usr/local/mysql/bin/mysql -uroot -p123456 -S /tmp/mysql.sock
  mysql -uroot -p123456 -h127.0.0.1 -P3306    使用ip地址 3306端口连接,端口可以自定义;
  # /usr/local/mysql/bin/mysql -uroot -p123456 -h127.0.0.1 -P3306
  直接在shell里面执行mysql语句,需要加-e 参数
  # mysql -uroot -p123456 -e "use mysql;select host,user from user where user='root'";

  
  查看在mysql执行的命令历史cat /root/.mysql_history   
  首先删除文件,然后将文件软连接指向黑洞,防止命令泄露。
  ln -s /dev/null /root/.mysql_history
  2、mysql的常用操作:
  查看所有的库show databases;

  查看某个库的表 use db; show tables;    db为database列出来的库名;
  mysql> use discuz;
  mysql> show tables;
  查看表的字段 desc tb;      tb为tables列出来的表的名字;

  查看建表语句 show create table tb;可以复制命令自己建立其他表;可以查看表的默认引擎,以及默认字符集;
  只写表名是在本数据库下面,也可以库.表查看其它库的表;
  # show create table pre_home_show;
  # show create table mysql.user;
  ENGINE=MyISAM DEFAULT CHARSET=utf8
  查看当前是哪个用户select user();
  查看当前所在的库    select database();
  
  创建库 create database db1;
  创建表 create table t1 (`id` int(4), `name` char(40));
  查看数据库版本 select version();
  查看mysql状态 show status;   
  查看mysql提供的存储引擎show engines;

  
  修改mysql参数:
  查看所有的变量    show variables;
  show variables like 'max_connect%';   %代表统配符,与 * 一样,多个任意字符;
  show variables like '';   引号里为空,也可以显示所有的变量;引号内可以写关键字加%,查看关键字的项目;
  修改参数的值    set global max_connect_errors = 1000;   
  mysql> show variables like 'max_connect%';
  +--------------------+-------+
  | Variable_name      | Value |
  +--------------------+-------+
  | max_connect_errors | 10    |
  | max_connections    | 151   |
  +--------------------+-------+
  2 rows in set (0.01 sec)
  mysql> set global max_connect_errors=10000;
  Query OK, 0 rows affected (0.00 sec)
  mysql> show variables like 'max_connect%';
  +--------------------+-------+
  | Variable_name      | Value |
  +--------------------+-------+
  | max_connect_errors | 10000 |
  | max_connections    | 151   |
  +--------------------+-------+
  2 rows in set (0.00 sec)
  查看当前默认的存储引擎 show variables like '%storage_engine%';

  /data/mysql/    目录下面存放的数据库的内容,有数据库名对应的目录;
  myisam存储一个文件有3种格式(.frm.MYD .MYI )
  查看mysql队列 show processlist;    show full processlist;显示全部的信息。

  创建普通用户并授权

  grant all on *.* to user1>
  grant all on db1.* to 'user2'@'10.0.2.100'>
  grant all on db1.* to 'user3'@'%'>  更改密码 UPDATE mysql.user SET password=PASSWORD("newpwd") WHERE user='username' ;
  查询显示表的行数    select count(*) from mysql.user;    myisam 显示速度比较快;
  查询表的所有内容    select * from mysql.db;
  条件查询表的内容    select * from mysql.db where host like '10.0.%';
  mysql> select * from mysql.db\G;    如显示乱码,需要加\G,列表显示;

  更新记录 update db1.t1 set name='aaa' where>
  mysql> update huang.name set name='aaa' where>  Query OK, 0 rows affected (0.01 sec)
  Rows matched: 0Changed: 0Warnings: 0
  删除表的数据    delete form tb where>
  清空表 truncate table db1.t1;
  删除表 drop table db1.tb1;
  删除数据库 drop database db1;
  修复表 repair table tb1 ;    为索引文件,索引重建一下;
  3、mysql备份与恢复
  使用mysqldump备份,适合数据量较小的;
  备份 mysqldump -uroot -p123456db > /tmp/1.sql    重定向到一个文件里面;
  恢复 mysql -uroot -p123456 db < 1.sql反向重定向,相当于复制了一个数据库;db必须真实存在;
  只备份一个表mysqldump -uroot -p db tb > 2.sql
  恢复一个表    mysql -uroot -p123456 db < 2.sql
  mysqldump -uroot -p123456 -d db tb > 3.sql    只备份表的语句;
  备份时指定字符集 mysqldump -uroot -p123456 --default-character-set=utf8db >1.sql    指定字符集防止乱码;
  恢复也指定字符集 mysql -uroot -p123456 --default-character-set=utf8db< 1.sql


页: [1]
查看完整版本: mysql基本操作讲解