MySQL基础管理

MySQL基础管理

一、用户管理

1.1、用户的作用

Linux用户:

登陆Linux系统
管理Linux对象:Linux一切皆文件

MySQL用户:

登陆管理MySQL数据库
管理MySQL对象:表

1.2、用户的定义

Linux用户:

用户名

MysQL用户:

用户名@'白名单'
白名单?
	地址列表,允许白名单的IP登录MySQL,管理MysQL。
	oldguo@ 'localhost': oldguo用户能够通过本地登录MySQL(socket)
	oldguo@'10.0.0.10': oldguo用户能够通过10.0.0.10远程登录MySQL服务器
	oldguo@'10.0.0.%': oldguo用户能够通过10.0.0.xx/24远程登录MySQL服务器
	oldguo@'10.0.0.5%': oldguo用户能够通过10.0.0.50-59/24远程登录MySQL服务器
	oldguo@'10.o.o.0/255.255.254.o'
	oldguo@'%'					网络通就可以登陆
	oldguo@'db01'				主机名登陆
	oldguo@ ' dbo1.oldguo.com'  域名登陆

1.3、用户管理

查:

show databases;
use mysql;
select user ,host ,authentication_string(密码) from mysql.user;
+---------------+-----------+-------------------------------------------+
| user          | host      | authentication_string                     |
+---------------+-----------+-------------------------------------------+
| root          | localhost | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.sys     | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
+---------------+-----------+-------------------------------------------+
3 rows in set (0.00 sec)

增:

# 创建用户不设置密码
create user tzh@'localhost';
# 创建用户且设置密码
create user  identified by '123';

改:

alter user tzh@'localhost' identified by '123'; #修改密码也行

删:

drop user zh@'192.168.1.%';

注意:8.0以后必须得先建用户再授权!8.0以前可以用grant命令,新建用户且授权!

1.4、权限管理

  • 权限表现方式:
    • Linux中:
      • wrx
    • MySQL中:
      • 具体的命令

查看可权限命令:

show privileges;
+-------------------------+------------------+-----------------------+
| Privilege         | Context            | Comment                                               |

授权操作:

8.0前:
grant  权限1,权限2,...,权限n  on 对象(表明或者库名) to 用户 indentified by '密码' with Grant option ;
# 多次grant多次使用,权限是叠加的

8.0后:
create user  用户名字 identified by '密码';
grant权限on对象to 用户;

权限:

权限:
ALL						:管理员(不包括with Grant option)
权限1,权限2,权限3,...		:普通用户(业务用户,开发用户)
给别的用户授权		 	   :with Grant option 放最后面

对象:库,表

*.*(全部授权) 			--——->chmod -R 755/    root管理员
oldguo(库).*	 		  ----->chmod -R 755 	 /oldguo普通用户  oldguo库下的所以表的权限
oldguo.tl(表)  		  ————->chmod -R 755 	 /oldguo/t1

例子:

grant all on *.* to tzh1@'192.168.1.%' identified by '123' with grant option;
# 查看用户授权
show grants for tzh1@'192.168.1.%';

扩展:
MySQL授权表:
user库中
db : app.*
tables_priv : app.t1
columns_priv :列

回收权限:

revoke  delete on tzh.*  from tzh1@'192.168.1.%';
revoke  delete on *.*  from tzh1@'192.168.1.%';

二、本地管理员用户密码忘记

跳过授权表、跳过网络连接

pkill mysqld
# 停止数据库后,用mysqld_safe方式启动
mysqld_safe --skip-grant-tables --skip-networking &
或者
service mysqld start --skip-grant-tables --skip-networking  意外发现

# 手工加载授权表,刷新权限,给管理器账号设置密码
mysql> flush privileges;
mysql>  alter user root@'localhost' identified by '123456';

#干掉mysql,再次启动
pkill mysqld
systemctl start  mysqld

三、连接管理

图解:

3.1、自带客户端命令

mysql 常用参数:

-u                   用户
-p                   密码
-h                   IP
-P                   端口
-S                   socket文件
-e                   免交互执行命令
<                    导入SQL脚本
socket :
前提:数据库中必须实现授权oldguo@ 'localhost'用户
mysql -utzh -p123 -s /tmp/mysql.sock
mysql -utzh -p -s /tmp/mysql.sock大实**太推荐方式
mysql -p123 -s /tmp /mysql.sock
mysql
mysql -uroot -p123
-----------------------------------------------------
tcpip:
前提:必须提前创建好,可以远程连接的用户(例如: tzh@'10.0.0.%')。
mysql -utzh -p123 -h 1o.o.0.51 -P 3306
mysql -utzh -p123 -h 1o.o.0.51
mysql -utzho -p -h 10.0.0.51 -P 3306

查看连接是远程还是本地连接:

show processlist;

mysqldump备份工具
mysqladmin管理工具

3.2、程序连接

java、go、python、php

四、初始化配置

4.1、作用

控制MySQL的启动
影响到客户端的连接

4.2、初始化配置的方法

1、预编译
2、配置文件(所有启动方式)
3、命令行参数 (仅限于 mysqld_safe mysqld)

4.3、配置文件作用

配置文件读取顺序:

以最后读取到的配置文件为准!!!

但是,如果启动时加入了--defaults-file=xxxx时,以上的所有文件都不会读取.

[root@master ~]# mysqld --help --verbose |grep my.cnf
/etc/my.cnf --> /etc/mysql/my.cnf --> /usr/local/mysql/etc/my.cnf -->  ~/.my.cnf

配置文件的书写方式:

[标签]
配置项=xxxx

标签类型:服务端、客户端
服务器端标签:
[mysqld]
[mysqld_safe]
[server]

客户端标签:
[mysql]
[mysqldump]
[client]

配置文件的示例展示:
[root@db01 ~]# cat /etc/my.cnf
[mysqld]					#服务器端标签
user=mysql					#负责数据库管理用户
basedir=/app/database/mysq1 #软件的安装位置
datadir=/data/ 3306			#数据的存放位置
server_ id=6				#标识节点的唯一编号(主从有用)
port=3306					#端口号
socket=/ tmp/mysql . sock	#套接字文件

[mysq1]						#客户端标签
socket=/ tmp/mysql.sock	#读取socket文件的位置点

五、mysql启动、关闭

启动方式,原理图

启动
systemctl start mysqld ----> mysql.server  ----> mysqld_ safe  ---> mysqld
mysqld_ safe和mysqld ,可以在启动数据库时,加入自己执行的参数,例如
-- skip-grant-tables
-- skip-networking
-- defaults-file=/opt/my. cnf

关闭
systemctl stop mysqld
service mysqld stop
/etc/init.d/mysq1d stop
mysqladmin -uroot -p123 shutdown
mysql -uroot -p123 -e "shutdown"
posted @ 2020-11-23 00:14  taotaozh  阅读(164)  评论(0编辑  收藏  举报