1、 查看MySQL进程
ps -ef|grep mysql |grep -v grep
2、 查看MySQL端口
ss -lnt | grep 3306
3、 MySQL的启动
mysql -uroot -p
/etc/init.d/mysql
初始化时MySQL的启动方法
mysqld_safe -user=mysql &
4、 关闭数据库
(1)平滑关闭数据库
mysqladmin -uroot -pcentos shutdown
/etc/init.d/mysqld stop
kill -USR2 cat path/pid
(2)强制关闭数据库
killall mysqld
pkill mysqld
killall -9 mysqld
注意:尽量不要野蛮的杀死数据库,生产高并发环境可能会引起数据丢失。
5、 多实例启动与关闭
多实例的启动就是我们写脚本,启动时用mysqld_safe指定配置文件启动,关闭时用mysqadmin
(2)/data/3307/mysql stop
6、 登陆mysql方法
(1)单实例登陆
mysq #数据库没有配置秘密的登陆方式
mysql -uroot #数据库没有配置秘密的登陆方式
mysql -uroot -p #标准的dba命令登陆命令
mysql -uroot -pcentos #非脚本一般不这样用,密码明文会泄露密码,可以掩饰history功能解决
强制linux不记录敏感历史命令
#HISTCONTROL=ignorespace
(2)多实例登陆
mysql -uroot -p -S /data/3306/mysql.sock
多实例通过mysql -S命令制定不同的sock文件登陆不同的服务中
(3)远程连接无需制定sock路径
mysql -uroot -p 127.0.0.1 -P3307
7、 更改MySQL数据库登陆提示符
(1)命令行修改登陆提示符,临时生效(进入数据库中)
mysql> prompt \u@solindb \r:\m:\s->
(2)配置文件修改登陆提示符
在my.cnf配置文件中[mysql]模板下添加如下内容
[mysql]
prompt=\\u@solindb \\r:\\m:\\s->
8、 MySQL的帮助命令help
MySQL中的help和linux的man相似
mysql> help history
mysql> help grant
mysql> help show grants
9、 为管理员root用户设置密码方法
mysqladmin -u root password ‘centos123’ #没有密码的用户设置密码
mysqladmin -u root -p ‘centos123’ password ‘centos456’ -S /data/3306/mysql.sock #适合多实例方式
注:以上为linux命令行
10、修改管理员root密码
方式一:命令行修改
mysqladmin -u root -p ‘centos123’ password ‘centos456’
mysqladmin -u root -p ‘centos123’ password ‘centos456’ -S /data/3306/mysql.sock
方式二:SQL语句修改
mysq>UPDATE mysql.user SET password=PASSWORD(“centos123”) WHERE user=’root’;
mysql>flush privileges;
方式三:root密码为空,修改root口令
mysql> set passwprd=passwpef(‘centos123’);
mysql> flush privileges;
注:此法不适合--skip--grant--tables方式修改密码
10、找回丢失的mysql用户密码
(1) 首先停止mysql
/etc/init.d/mysqld stop
(2) 使用 --skip-grant-tables 启动mysql,忽略授权登陆
mysqld_safe --skip-grant-tables --user=mysql &
mysql –uroot –p或mysql #登陆时空密码
注:在启动时加--user=mysql参数,表示忽略授权验证
(3) 修改root密码为新密码
mysql> update mysql.user set password=PASSWORD(“cebtos123”) where user=”root” and host=”locahost”;
mysql> flush privileges;
(4) 重启服务再登陆
mysqladmin -uroot -pcentoos123 shtudown
/tec/init.d/mysqld start
mysql -uroot -p”centos123”
11、多实例MySQL启动修改丢失root密码
(1)关闭mysql
killall mysqld
(2)启动时加--skip-grant-table参数
mysqld_safe --defaults-file=/data/3306/my.cof --skip-grant-table &
mysql -u root -p -S /data/3306/mysql.sock #登陆时空密码
(3)修改密码的方法
mysql> UPDATE msql.user SET password=PASSWORD(“centos123”) WHERE user=’root’;
FLUSH PRIVILEGES;
12、SQL结构化查询语言
SQL结构化查询语言包括6个部分
(1)数据查询语言(DQL)
DQL全称Data Query Language,其语句,也称为“数据检索语句”,用以从表中获得数据,确定数据怎样在应用程序给出,保留字SELECT是DQL用得最多的动词,其他DQL常用的保留字有WHERE,ORDAER BY,GROUP BY 和 HAVING
mysql> select user,host from mysql.user order by user asc; #查询mysql.user的user,host,并升序排列
+------+-----------+
| user | host |
+------+-----------+
| root | localhost |
| root | 127.0.0.1 |
| root | ::1 |
+------+-----------+
3 rows in set (0.00 sec)
mysql> select user,host from mysql.user order by user desc; #查询mysql.user的user,host,并倒序排列
+------+-----------+
| user | host |
+------+-----------+
| root | localhost |
| root | 127.0.0.1 |
| root | ::1 |
+------+-----------+
3 rows in set (0.00 sec)
(2)数据操作语言(DML)
DML全称Data Manipulation Language,其语句包括INSERT,UPDATE和DELETE。他们分别用于添加,修改和删除表中的行(数据)也称作动作查询语句
mysql> select user,host from mysql.user order by user desc;
+------+-----------+
| user | host |
+------+-----------+
| root | localhost |
| root | 127.0.0.1 |
| root | ::1 |
+------+-----------+
3 rows in set (0.00 sec)
mysql> delete from mysql.user where host='::1'; #删除表中host=;;1的(行)数据
Query OK, 1 row affected (0.00 sec)
mysql> select user,host from mysql.user order by user desc;
+------+-----------+
| user | host |
+------+-----------+
| root | localhost |
| root | 127.0.0.1 |
+------+-----------+
2 rows in set (0.00 sec)
它的语句能确保被DML语句影响的表的所有行及时得以更新。TPL语句包括BEGIN
TRANSACTION,COMMIT和ROLLBACK
(4)数据控制语言(DCL)
DCL全称(Date Control Language),它的语句通过GRANT或REVOKE获得许可,确定单用户和用户组多数据对象的访问。某些RDBMS可用GRANT或REVOKE控制对表单个列的访问。
(5)数据定义语言(DDL)
DDL全称(Date Definition Language),其语句包括动词CREATE和DROP,在数据库中创建新表或删除表(CREAT TABLE或DROP TABLE);为表加入索引等。DDL包括许多与人数据库目录中获得有关的保留字。字也是动作查询的一部分
(6)指针控制语言(CCL)
全称CURSOR Control Language ,它的语句,像DECLARE CURSOR,FETCH INTO和UPDATE WHERE CURRENT用于对一个或多个表单独行的操作
小结:常见的SQL语句最常见的分类一般就是3类
DDL--数据定义语言(CREATE,ALTER,DROP)
DML--数据操作语言(SELECT,INSERT,DELETE,UPDATE)
DCL--数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)