设为首页 收藏本站
查看: 592|回复: 0

[经验分享] MySQL基础命令入门

[复制链接]

尚未签到

发表于 2018-10-3 13:31:31 | 显示全部楼层 |阅读模式
第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 stop1.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不记录敏感历史命令
[root@db01 ~]# 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\G4.8 删除系统多余账号
DSC0000.jpg

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
  
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= 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\G5.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 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();  ==》获取当前的时间



运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-609886-1-1.html 上篇帖子: MySQL 教程 下篇帖子: [每日更新-MySQL基础]-1.认识MySQL
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表