MySQL基础命令入门

第1章 启动停止命令

1.1启动命令

1.1.1单实例启动命令

/etc/init.d/mysqld start
mysqld_safe --defaults-file=/etc/my.cnf 2>&1 > /dev/null &

1.1.2多实例启动命令

/data/3306/mysql start
mysqld_safe --defaults-file=/data/3306/my.cnf 2>&1 >/dev/null &

1.2停止命令

1.2.1单实例停止命令

/etc/init.d/mysqld stop

1.2.2多实例停止命令

/data/3306/mysql stop
mysqladmin -uroot -p123456 -S /data/3306/mysql.sock shutdown

1.2.3强制停止的命令

killall mysqld
pkill mysqld
killall -9 mysqld
kill -9 PIDNUMBER

q  【注意】

1.        用killall关闭,要直到出现mysqld: no process killd 表示操作完成

2.        强制关闭命令在生产情况下一般不使用

3.        尽量不要采用粗鲁野蛮的方式杀死数据库,生产高并发的环境可能会引起数据丢失

第2章 登入登出mysql命令

2.1登入命令

2.1.1单实例登入命令

mysql   ==》刚装完数据库时,无需密码的登入命令
mysql -uroot    ==》刚装完数据库,无需密码的登入命令
mysql -uroot -p  ==》标准的命令行登入命令
mysql -uroot -p123456   ==》这种方法一般不使用,密码明文会泄漏密码

2.1.2多实例的登入命令

mysql -S /data/3306/mysql.sock  ==》无密码的登入命令
mysql -uroot -p123456 -S /data/3306/mysql.sock  ==》带密码的登入命令

2.1.3强制linux不记录敏感历史命令

[[email protected] ~]# HISTCONTROL=ignorespace

q  【注意】

若想永久生效只需加入/etc/profile中即可

2.2登出命令

quit
exit
Ctrl+c

第3章 设置及修改root用户密码

3.1设置密码方法

3.1.1单实例设置密码的方式

mysqladmin -uroot password "123456"  ==》命令行操作
mysql> set password=password('123456');  ==》进入mysql操作

3.1.2多实例设置密码的方式

mysqladmin -uroot -S /data/3306/mysql.sock password "123456" ==》命令行操作
mysql> set password=password("123456");  ==》进入mysql操作

3.2修改密码的方式

3.2.1单实例修改密码的方式

mysqladmin -uroot -p123456 password "3306"  ==》命令行操作
mysql> update mysql.user set password=password("123456") where user='root' and host="localhost";   ==》进入mysql操作

3.2.2多实例修改密码的方式

mysqladmin -uroot -p123456 -S /data/3306/mysql.sock password "3306"  ==》命令行操作
mysql> update mysql.user set password=password("123456") where user='root' and host='localhost';   ==》进入mysql操作

3.3找回丢失的数据库密码

3.3.1单实例找回密码的方式

/etc/init.d/mysqld stop  ==》停止数据库
mysqld_safe --defaults-file=/etc/my.cnf --skip-grant-table 2>&1 >/dev/null &  ==》绕过授权表
mysql   ==》登录mysql不需要密码
mysql> update mysql.user set password=password("123456") where user='root' and host='localhost';  ==》设置新的密码
mysql> flush privileges;  ==》刷新数据库的权限
mysql> quit  ==》退出数据库
/etc/init.d/mysqld start  ==》启动数据库
mysql -uroot -p123456  ==》重新登录即可

3.3.2多实例找回密码的方式

/data/3306/mysql stop  ==》停止数据库
mysqld_safe --defaults-file=/data/3306/my.cnf --skip-grant-table 2>&1 >/dev/null &  ==》绕过授权表
mysql -S /data/3306/mysql.sock  ==》登入mysql
mysql> update mysql.user set password=password("3306") where user='root' and host='localhost';  ==》设置新的密码
mysql> flush privileges;  ==》刷新数据库的权限
mysql> quit   ==》退出数据库
/data/3306/mysql start  ==》启动数据库
mysql -uroot -p3306 -S /data/3306/mysql.sock  ==》重新登录即可

第4章 mysql库操作

4.1显示数据库

mysql> show databases;   ==》显示所有数据库
mysql> help show;   ==》查看帮助方法

4.2进入数据库

mysql> use mysql;
mysql> help use;

4.3创建数据库

mysql> create database LZH;
mysql> help create database;  ==》查看帮助
Syntax:
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
    [create_specification] ...
 
create_specification:
    [DEFAULT] CHARACTER SET [=] charset_name
  | [DEFAULT] COLLATE [=] collation_name

4.4删除数据库

mysql> drop database LZH;
mysql> help drop database;  ==》查看帮助
Syntax:
DROP {DATABASE | SCHEMA} [IF EXISTS] db_name

4.5查看当前连接的数据库

mysql> select database();

4.6查看连接数据库包含的表信息

mysql> show tables;

4.7查看建库的完整语句

mysql> show create database lzh\G

4.8删除系统多余账号

mysql> drop user "root"@"::1";
mysql> drop user ""@"db02";
mysql> drop user "root"@"db02";
mysql> drop user ""@"localhost";

4.9建立用户并赋予权限

4.9.1 create和grant配合法

mysql> create user 'lzh'@'localhost' identified by '123456';
mysql> grant all on oldboy.* to 'lzh'@’localhost’;

4.9.2直接grant法

mysql> grant all on oldboy.* to 'lzh'@'localhost' identified by '123456';

4.10查看mysql的用户

mysql> select user from mysql.user;
mysql> select user,host from mysql.user;

第5章 mysql表操作

5.1建表

mysql> create table test(
    -> id int(4) primary key AUTO_INCREMENT,
-> name char(20) NOT NULL   
-> )ENGINE=innodb default charset=gbk;
mysql> help create table;

5.2  mysql表的常用字段类型

5.2.1数字类型


列类型


需要的存储量


TINYINT


1字节


INT


4字节


BIGINT


8字节


SMALLINT


2字节


MEDIUMINT


3字节


INTEGER


4字节


FLOAT


4字节

5.2.2日期和时间类型


列类型


需要的存储量


DATE


3字节


TIMESTAMP


4字节


DATETINE


8字节


TINE


3字节


YEAR


1字节

5.2.3字符串类型


列类型


需要的存储量


CHAR(M)


1=<M<=255字节


VARCHAR


BLOG,TEXT

5.2.4总结

q  INT型:正常大小整数类型

q  CHAR型:定长字符串类型,当存储时,总是用空格填满右边到指定的长度

q  VARCHAR型:变长字符串类型

5.3查表及建表

5.3.1查看表结构

mysql> desc test;
+-------+----------+------+-----+---------+----------------+
| Field | Type     | Null | Key | Default | Extra          |
+-------+----------+------+-----+---------+----------------+
| id    | int(4)   | NO   | PRI | NULL    | auto_increment |
| name  | char(20) | NO   |     | NULL    |                |
+-------+----------+------+-----+---------+----------------+
2 rows in set (0.00 sec)

5.3.2给表增加字段

mysql> alter table test add dept char(20) after id; ==
》在某个字段之后加入

默认是在最后插入字段

5.3.3查看建表语句

mysql> show create table test\G
*************************** 1. row ***************************
       Table: test
Create Table: CREATE TABLE `test` (
  `id` int(4) NOT NULL AUTO_INCREMENT,
  `name` char(20) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=gbk
1 row in set (0.00 sec)
5.4 插入数据
mysql> insert into test values(1,'oldboy');
mysql> insert into test(name) values('oldgirl');
mysql> insert into test values(3,'zuma'),(4,'keke'),(5,'icna');

5.5清空表

mysql> truncate table test;
mysql> delete from test;

5.6为字段创建索引

5.6.1创建普通索引

mysql> create index index_name on test(name);
mysql> alter table test add index index_name(name);

5.6.2创建联合索引

mysql> alter table test add index index_name_dept(name,dept);

5.6.3创建及删除主键索引

mysql> alter table test change id id int primary key auto_increment;  ==》创建
mysql> alter table test drop primary key;

5.6.4根据前n个字符创建索引

mysql> alter table test add index index_name(name(8));

5.6.5创建唯一索引

mysql> alter table test add unique index_name(name);

5.6.6删除索引

mysql> alter table test drop index index_name;

5.6.7查看索引

mysql> show index from test\G

5.6.8索引列的创建及生效条件

5.6.8.1 为什么不给所有的列都创建索引

因为索引不但占用系统空间,而且在更新数据时还需要维护索引数据的,因此索引是把双刃剑,并不是越多越好,譬如数十到几百行的数据就不需要建立索引,插入更新频繁,读取比较少的索引需要建立索引。

5.6.8.2 在哪些列上创建索引,可以加快查询速度?

select user,host from mysql.usre where password=  索引一定要建在where后的条件列上,并且要尽量选择在唯一值多的大表上的列建立索引。

5.6.9索引知识小结

q  索引类似书籍的目录,会加快查询的速度

q  要在表的列上创建索引

q  索引会加快查询速度,但是也会影响更新的速度,因为更新要维护索引数据

q  索引列并不是越多越好,要在频繁查询的表语句where后的条件列上创建索引

q  小表或重复值很多的列上可以不建立索引,要在大表以及重复值少的条件列上创建索引

q  多个联合索引有前缀生效特性

q  当字段前N个字符已经接近唯一时,可以对字段前N个字符创建索引

q  索引从工作方式区分,有主键、唯一、普通索引

q  索引类型会有BTREE(默认)和hash(适合做缓存(内存数据库))等

5.7查询操作

5.7.1查询表的所有内容

mysql> select * from test;
mysql> select * from oldboy.test;

5.7.2查询前两行数据

mysql> select * from test limit 2;

5.7.3从第N行开始查询,查询M行

mysql> select * from test limit 1,2;
mysql> select * from test limit N,M;

5.7.4按照固定条件查询

mysql> select * from test where id=1;
mysql> select * from test where name='kaka';

5.7.5按照固定范围查找

mysql> select * from test where id=5 and name='kaka';
mysql> select * from test where id=1 or name='kaka';
mysql> select * from test where id>2 and id<5;

5.7.6按照排序查找

mysql> select * from test order by id desc;  ==》按照逆序排序
mysql> select * from test order by id asc;  ==》按照正序排序  默认是正序

5.7.7查询mysql版本、当前用户等

mysql> select version();
mysql> select user();
mysql> select now();  ==》查询时间
mysql> select curdate();  ==》查询时间
mysql> select curtime();  ==》获取当前的时间

原文地址:http://blog.51cto.com/lzhnb/2126348

时间: 2024-10-10 07:23:44

MySQL基础命令入门的相关文章

马哥教育第二十三MySQL基础应用入门

1.MySQL基础应用入门                安装mariadb-10.0.19:                      vim /usr/local/mariadb-10.0.19-linux-x86_64/INSTALL-BINARY                                               cd /usr/local                      ln -sv mariadb-10.0.19-linux-x86_64 mysql

Linux运维常用的 MySQL基础命令

MySQL基础命令 ------------- 创建MySQL库,授权. >create database mysqldb character set utf8; >grant all privileges on mysqldb.* to 'mysqluser'@'localhost' identified by 'mysqlpasswd'; >flush privileges; 创建了mysqldb数据库,创建mysqluser用户,并授权mysqldb的所有权限.__________

cmd 与 bash 基础命令入门

身为一个程序员会用命令行来进行一些简单的操作,不是显得很装逼嘛!?嘿嘿~ ヾ(>?<) cmd 与 bash 基础命令入门 ??????简介 ??????CMD 基础命令 ????????????目录操作 ??????????????????切换目录 ??????????????????列出文件与子目录 ??????????????????创建目录 ??????????????????删除目录 ??????????????????复制目录 ??????????????????移动目录 ????

MySQL基础命令和mysqladmin命令的使用

mysql --user, -u --host, -h --password, -p --port --protocol --database DATABASE, -D MySQL的批处理模式 [[email protected] ~]# vim /test.sql create database testdb; create table testdb.tb1 (id INT,name CHAR(20)) [[email protected] ~]# mysql mysql> \. /test.

mysql基础命令学习笔记

这里不会涉及一些mysql数据库安装之类的知识,但是会将自己学习以及使用mysql一些最常用的mysql语句总结到本篇文章,作为自己的学习记录和笔记.基本的环境为CentOS 6.5 数据库为mysql5.6.30. 1.启动和停止Mysql服务 1.  /etc/init.d/mysql restar   #重启 2.  /etc/init.d/mysql stop     #停止 3.  /etc/init.d/mysql start    #启动 4.  /etc/init.d/mysql

Linux环境下MySQL基础命令(4)----数据库的用户授权

      MySQL数据库的root用户拥有对所有库,表的全部权限,频繁的使用root用户会给数据库带来很大的风险,因此应建立一些低权限用户,只负责一部分库.表的管理维护操作,甚至可以对增.删.改.查各个操作进一步细化限制,从而将数据库的风险降至最低. 一,授予权限 GRANT语句:用来设置数据库用户的访问权限,当指定的用户不存在时,GRANT语句将会创建新的用户.使用GRANT语句授权的用户记录,会保存到mysql库的user.db.host.tables_priv等表中,无需刷新便立即生效

Linux环境下MySQL基础命令----查看、创建、删除库和表

案例二,查看数据库 MySQL是一套数据库管理系统,支持运行多个库,每个库相当于一个容器,存放着许多表.数据就存在这些表中,所以查看.创建.删除库和表,在工作中必不可少. 一,查看 1,查看当前服务器中有哪些库 使用命令:SHOW DATABASES;          //查看库信息 2,查看当前使用的库中有哪些表 使用命令: USE mysql;                                 //使用USE命令切换到名为mysql的表中 使用命令: SHOW TABLES;

mysql 基础命令

在这里记录一下常用的mysql命令,以备不时之需: 1. 启动mysql服务: //此命令返回状态5,无法连接时,使用管理员身份打开cmd即可 net start mysql 2. 登录mysql命令 mysql -u root(用户名) -p ***(密码) 3.查看当前版本mysql支持的引擎 show engines; 4.查看当前默认的存储引擎 show variables like '%storage_engine%'; 5.查询某个表使用了什么引擎 show create table

【MYSQL命令】mysql基础命令

1.查询MYSQL当前用户命令:select user() mysql> select user(); +------------------------+ | user() | +------------------------+ | zhangm1@183.16.191.102 | +------------------------+ 1 row in set (0.01 sec)