msyql操作100题
1.1.1 开启MySQL服务
/etc/init.d/mysqld start
使用/etc/init.d/mysqld
start命令启动数据库的本质就相当于执行mysqld_safe --user=mysql &命令。
1.1.2 检测端口是否运行
[root@db02 application]# netstat -lntup| grep 3306
tcp
0 0 :::3306 :::* LISTEN 45675/mysqld
[root@db02 application]#
1.1.3 为MySQL设置密码或者修改密码。
mysqladmin -uroot password ‘123456’设置密码
mysqladmin -u root -p password ‘oldboy123’修改密码
1.1.4 登陆MySQL数据库。
mysql -uroot -poldboy123 -h 127.0.0.1
mysql -uroot -poldboy123 --protocol TCP
mysql -uroot -poldboy123 -S /application/mysql/tmp//mysql.sock
1.1.5 查看当前数据库的字符集
mysql> show character set;
mysql> show charset;
1.1.6 查看当前数据库版本
mysql>
select version();
+-----------+
| version() |
+-----------+
| 5.6.36 |
+-----------+
1 row in set (0.04 sec)
mysql>
select @@version;
+-----------+
| @@version |
+-----------+
| 5.6.36 |
+-----------+
1 row in set (0.18 sec)
mysql>
mysql> status
--------------
mysql Ver
14.14 Distrib 5.6.36, for linux-glibc2.5 (x86_64) using EditLine wrapper
Connection id: 11
Current database: oldboy
Current user: root@localhost
SSL: Not
in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 5.6.36
MySQL Community Server (GPL)
Protocol version: 10
Connection: Localhost
via UNIX socket
Server characterset: latin1
Db
characterset: latin1
Client characterset: utf8
Conn.
characterset: utf8
UNIX socket: /tmp/mysql.sock
Uptime: 2
hours 44 min 34 sec
Threads: 1
Questions: 41 Slow queries:
0 Opens: 68 Flush tables: 1 Open tables: 61 Queries per second avg: 0.004
--------------
mysql>
[root@db02 scripts]# mysql -V
mysql Ver
14.14 Distrib 5.6.36, for linux-glibc2.5 (x86_64) using EditLine wrapper
[root@db02 scripts]#
[root@db02 scripts]# mysql
--help| grep Distrib
mysql Ver
14.14 Distrib 5.6.36, for linux-glibc2.5 (x86_64) using EditLine wrapper
[root@db02 scripts]#
mysql> show variables like
"%version%";
+-------------------------+------------------------------+
| Variable_name | Value |
+-------------------------+------------------------------+
| innodb_version | 5.6.36 |
| protocol_version | 10 |
| slave_type_conversions | |
| version | 5.6.36 |
| version_comment | MySQL Community Server (GPL) |
| version_compile_machine | x86_64 |
| version_compile_os | linux-glibc2.5 |
+-------------------------+------------------------------+
7 rows in set (0.34 sec)
1.1.7 查看当前登录的用户。
mysql> select user();
1.1.8 查看内存进程线程监控信息;
mysql> show engine innodb status\G
1.1.9 创建GBK字符集的数据库oldboy,并查看已建库完整语句
mysql> create database oldboy charset gbk;
mysql> show create database oldboy;
1.1.10 创建用户oldboy,使之可以管理数据库oldboy
mysql> create user oldboy@'172.16.1.%'
identified by '123456';
grant all on oldboy.* to oldboy@'172.16.1.%' identified by '123456';
1.1.11 查看创建的用户oldboy拥有哪些权限
show grants for oldboy@'172.16.1.%'\G
1.1.12 查看当前数据库里有哪些用户
select user ,host from mysql.user;
1.1.13 进入oldboy数据库
use oldboy
1.1.14 创建一innodb GBK表test,字段id int(4)和namevarchar(16)
mysql> create table test ( id int(4) not null ,
name varchar(16) default null ) engine=Innodb default charset=gbk;
1.1.15 查看建表结构及表结构的SQL语句
mysql> show create table test;
mysql> desc test;
1.1.16 插入一条数据“1,oldboy”
insert into test(id,name) values(1,'oldboy');
1.1.17 再批量插入2行数据 “2,老男孩”,“3,oldboyedu”
mysql> insert into test values(3,'老男孩'),(4,'olodboyedu');
1.1.18 查询名字为oldboy的记录
mysql> select * from test where name='oldboy';
1.1.19 把数据id等于1的名字oldboy更改为oldgirl
mysql> update test set name='oldgirl' where
name='oldboy';
1.1.20 在字段name前插入age字段,类型tinyint(2)
mysql> alter table test add age tinyint(2) after
id;
1.1.21
不退出数据库,完成备份oldboy数据库
\! mysqldump -uroot -p123456 -S
/tmp/mysql.sock --events -B oldboy mysql
>/opt/bak_$(date +%F).sql
1.1.22 删除test表中的所有数据,并查看
truncate table test;
delete from test;
1.1.23 删除表test和oldboy数据库并查看
drop table test;
drop database oldboy;
1.1.24 不退出数据库恢复以上删除的数据
mysql -uroot -p123456 -S /tmp/mysql.sock
</opt/bak_2017-11-20.sql
1.1.25 把库表的GBK字符集修改为UTF8。
1.先导出表中数据
mysqldump -uroot -poldboy123 -S
/data/3306/mysql.sock -B oldboy >/opt/test.sql
egrep -v "^$|--|\/" /opt/test.sql #<==可以看到这一行:ENGINE=MyISAM DEFAULT CHARSET=gbk;
2.修改字符集
sed -i 's#CHARSET=gbk#CHARSET=utf8#g' /opt/test.sql
egrep -v "^$|--|\/" /opt/test.sql #<==验证:) ENGINE=MyISAM DEFAULT CHARSET=utf8;
3.恢复数据
在sql文件中添加一条 set names utf8;并恢复
mysql -uroot -poldboy123 -S
/data/3306/mysql.sock oldboy
</opt/test.sql
1.1.26 把id列设置为主键,在Name字段上创建普通索引。
alter table test add primary key (id);
alter table test add index index_name (name);
1.1.27 在字段name后插入手机号字段(shouji),类型char(11)。
mysql> alter table test add shouji char(11)
after name;
1.1.28 所有字段上插入2条记录(自行设定数据)
mysql> insert into test
values(5,'12','ll','123456'),(6,'13','kaka','5236');
1.1.29 在手机字段上对前8个字符创建普通索引。
mysql> alter table test add index index_shouji
(shouji(8));
1.1.30 查看创建的索引及索引类型等信息。
mysql> desc test;
mysql> show create table test\G
mysql> show index from test\G
mysql>
1.1.31 删除Name,shouji列的索引。
mysql> alter table test drop index index_shouji;
mysql> alter table test drop index index_name;
1.1.32 对Name列的前6个字符以及手机列的前8个字符组建联合索引。
alter table
test add index index_name_shouji(name(6),shouji(8));
1.1.33 查询手机号以135开头的,名字为oldboy的记录(提前插入)。
mysql> select * from test where name='oldboy'
and shouji like '135%';
1.1.34 查询上述语句的执行计划(是否使用联合索引等)。
mysql> explain select * from test where
name='oldboy' and shouji like '135%'\G
1.1.35 把test表的引擎改成MyISAM。
mysql> alter table test engine=myisam;
1.1.36 收回oldboy用户的select权限。
revoke select
on oldboy.* from oldboy@'172.16.1.%';
1.1.37 删除oldboy用户。
drop user oldboy@'172.16.1.%';
1.1.38 删除oldboy数据库。
drop database oldboy
1.1.39 使用mysqladmin关闭数据库。
mysqladmin -uroot -poldboy123 shutdown
1.1.40 MySQL密码丢了,请找回?
[root@db01 ~]# netstat -tunlp|grep 3306 #<==先查看服务是否正常
tcp
0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 62358/mysqld
[root@db01 ~]# kill 62358 #<==kill掉进程的pid
[root@db01 ~]# netstat -tunlp|grep 3306
#<==mysql进程已关闭
[root@db01 ~]# mysqld_safe --help #<==利用mysqld_safe命令指定配置文件,跳过授权表来破密码
[root@db01 ~]# mysqld_safe
--defaults-file=/data/3306/my.cnf --skip-grant-tables 2>&1 >/dev/null
&
[root@db01 ~]# mysql -S /data/3306/mysql.sock
#<==无密码登录进多实例3306
mysql> select user,host,password from mysql.user
where user='root' and host='localhost';
+------+-----------+-------------------------------------------+
| user | host
| password |
+------+-----------+-------------------------------------------+
| root | localhost |
*FE28814B4A8B3309DAC6ED7D3237ADED6DA1E515 |
+------+-----------+-------------------------------------------+
1 row in set (0.00 sec)#<==先看下mysql库,user表里的字段内容
mysql> update mysql.user set
password=PASSWORD("123456") where user='root' and host='localhost';
#<==利用update命令来更新root@localhost用户的密码
mysql> flush privileges; #<==记得刷新授权表,否则不会立马生效的
Query OK, 0 rows affected (0.00 sec)
[root@db01 ~]# sed -i
's#mysql_pwd="oldboy456"#mysql_pwd="oldboy123"#g'
/data/3306/mysql
[root@db01 ~]# grep mysql_pwd= /data/3306/mysql
#<==修改启动脚本的密码,才能利用命令来停止服务
mysql_pwd="oldboy123"
[root@db01 ~]# /data/3306/mysql stop #<==先停掉服务,因为有跳过授权表的参数在
Stoping MySQL...
[1]+
Done mysqld_safe
--defaults-file=/data/3306/my.cnf --skip-grant-tables 2>&1 >
/dev/null
[root@db01 ~]# /data/3306/mysql start #<==启动
Starting MySQL...
[root@db01 ~]# ss -tunlp|grep 3306 #<==侦听正常
tcp
LISTEN 0 600 *:3306 *:*
users:(("mysqld",66695,12))
[root@db01 ~]# mysql -uroot -poldboy123 -S
/data/3306/mysql.sock #<==成功登录
msyql操作100题的更多相关文章
- 数据结构+算法面试100题~~~摘自CSDN
数据结构+算法面试100题~~~摘自CSDN,作者July 1.把二元查找树转变成排序的双向链表(树) 题目:输入一棵二元查找树,将该二元查找树转换成一个排序的双向链表.要求不能创建任何新的结点,只调 ...
- Go面试题精编100题
Golang精编100题 选择题 1. [初级]下面属于关键字的是()A. funcB. defC. structD. class 参考答案:AC 2. [初级]定义一个包内全局字符串变量,下 ...
- LeetCode面试常见100题( TOP 100 Liked Questions)
LeetCode面试常见100题( TOP 100 Liked Questions) 置顶 2018年07月16日 11:25:22 lanyu_01 阅读数 9704更多 分类专栏: 面试编程题真题 ...
- 操作实践题 - HTML 列表综合应用
通过对列表的综合应用,编写如下效果网页: 解答: <html> <head> <title>操作实践题</title> <meta http-eq ...
- bzoj 前100题计划
bzoj前100题计划 xz布置的巨大的坑.. 有空填题解... 1002 轮状病毒 用python手动matrixtree打表. #include<bits/stdc++.h> #def ...
- 【C/C++学院】0831-类与对象的异常/面试100题1-100
类与对象的异常 Cpp异常 #include <iostream> #include <string.h> using namespace std; //标识错误的类型 cla ...
- oracle刚開始学习的人经常使用操作100问
oracle刚開始学习的人经常使用操作100问 1. Oracle安装完毕后的初始口令? internal/oracle sys/change_on_install system/manager ...
- Python练习100题
Python练习100题 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? #Filename:001.py cnt = 0#count the sum of res ...
- 【微软100题】定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部。 如把字符串abcdef左旋转2位得到字符串cdefab。请实现字符串左旋转的函数。
package test; /** * 定义字符串的左旋转操作:把字符串前面的若干个字符移动到字符串的尾部. 如把字符串abcdef左旋转2位得到字符串cdefab. 请实现字符串左旋转的函数. * ...
随机推荐
- Android指针管理:RefBase,SP,WP (二)
(1)在Android中,RefBase结合了sp和wp,实现了一套通过引用计数的方法来控制对象声明周期的方法. RefBase的定义在/frameworks/base/include/utils/R ...
- AudioManager 音量『转』
获取系统音量 通过程序获取android系统手机的铃声和音量.同样,设置铃声和音量的方法也很简单! 设置音量的方法也很简单,AudioManager提供了方法: publicvoidsetStream ...
- VC++ 6.0 快捷键
多行注释的快捷键 详细步骤 工具栏上右键-〉Customize-〉“Add-ins and Macro Files”tab页,把SAMPLE前面打上钩-〉“Commands”tab页,Categ ...
- sqlplus 连接数据库执行SP
.bashrc export HOME= export LANG="C" .bash_profile #明码 #export LOG_USER=lhcx #export LOG_P ...
- nginx 启动、重启、关闭命令
一.启动 cd /usr/local/nginx/sbin ./nginx 二.重启 更改配置重启nginx kill -HUP 主进程号或进程号文件路径 或者cd /usr/local/ngi ...
- activeMQ功能Demo
1. 请阐述ActiveMQ的作用 2. 请描述ActiveMQ的工作原理 1. 解决服务之间耦合 2. 使用消息队列,增加系统并发处理量 3. 使用Java程序编写生产者发送10条“你好,activ ...
- CF609E Minimum spanning tree for each edge
原来觉得是一个LCT,感觉自己瞬间傻掉…… 考虑到先做一个最小生成树求出做最小生成树的代价$ans$,顺便标记一下树边和非树边,把边按照输入$id$排序回去之后扫,如果扫到一条树边,那么此时的答案就是 ...
- js 常用公共方法
1.判断是否为空 function isNull(arg1) { return !arg1 && arg1!==0 && typeof arg1!=="boo ...
- java 英文笔记
JDBC涉及到的单词 Driver 驱动器 DriverManager (Manager 处理者,经理,管理人; 干事,理事; 〈美〉(政党等的)领袖; 策士,干才,干练的人;) create Sta ...
- vue 路由里面的 hash 和 history
对于 Vue 这类渐进式前端开发框架,为了构建 SPA(单页面应用),需要引入前端路由系统,这也就是 Vue-Router 存在的意义.前端路由的核心,就在于 —— 改变视图的同时不会向后端发出请求. ...