MySQL学习【第03篇】MySQL版本区别及管理

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_44558760/article/details/88790907

一、MySQL5.6与MySQL5.7安装的区别

  1. cmake的时候加入了boost
  2. 初始化时 使用mysqld --initialize 替代mysql_install_db,其它参数没有变化:--user= --basedir= --datadir=
  3. --initialize会生成一个临时密码
  4. 还可以用另外一个参数--initialize-insecure 
[root@db02 mysql-5.7.20]# yum install -y gcc gcc-c++ automake autoconf
[root@db02 mysql-5.7.20]# yum install make cmake bison-devel ncurses-devel libaio-devel
[root@db02 mysql-5.7.20]#
wget https://dl.bintray.com/boostorg/release/1.65.1/source/boost_1_59_0.tar.gz

#登录boost.org下载也可以
[root@db02 mysql-5.7.20]# tar xf boost_1_59_0.tar.gz -C /usr/local/
[root@db02 mysql-5.7.20]#
cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.7.20 \
-DMYSQL_DATADIR=/application/mysql-5.7.20/data \
-DMYSQL_UNIX_ADDR=/application/mysql-5.7.20/tmp/mysql.sock \

-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/usr/local/boost_1_59_0 \

-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS=all \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_FEDERATED_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
-DWITH_ZLIB=bundled \
-DWITH_SSL=bundled \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLE_DOWNLOADS=1 \
-DWITH_DEBUG=0 

 

 二、MySQL管理

1、用户权限管理

1)用户基础操作

1、创建用户并设置密码(all权限中不包括授权这个权限,需要在后面with grant option)
mysql> grant all on *.* to lhl@'10.0.0.%' identified by '123' with grant option;

2、查看用户列表
mysql>  select user,host from mysql.user;			#查看用户列表

mysql> select *,host from mysql.user\G;				#查看用户权限
mysql> select *,host from mysql.user where user='lhl'\G;	#查看单用户权限

3、删除用户
mysql> drop user lhl@'10.0.0.%';

4、修改用户密码
mysql> set password=PASSWORD('123');

2)用户的定义

1、username@’主机域’

2、主机域:可以理解为是MySQL登陆的白名单

3、主机域格式:
’10.0.0.51’
’10.0.0.5%’
’10.0.0.%’
’10.0.%.%’
’10.%.%.%’
‘%’
‘db01’
’10.0.0.51/255.255.255.0’

3)修改用户密码

1、mysqladmin	
[root@db02 ~]# mysqladmin -uroot -p password='123'    #设定初始化密码

2、update
mysql> 
update mysql.user set password=PASSWORD('123') where user='root'and host='localhost'; 
mysql> flush privileges;

3、set			
mysql> set password=PASSWORD('123');    #修改当前登录的用户密码

4、grant
mysql> grant all on *.* to root@'localhost' identified by '123';
mysql> grant all privileges on *.* to root@'localhost' identified by '123';
											#privileges可省略

4)一般给开发开用户权限

开发人员说:请给我开一个用户,需要沟通:

  • 你需要对哪些库、表进行操作
  • 你从哪里连接过来
  • 用户名有没有要求
  • 密码要求
  • 发邮件
#一般给开发创建用户权限(delete慎重)
mysql> grant select,update,delete,insert on *.* to lhl@’10.0.0.%’ identified by ‘123’;

5)总结

  • 如果在不同级别都包含某个表的管理能力时,权限是相加关系;
  • 但是我们不推荐在多级别定义重复权限;
  • 最常用的权限设定方式是单库级别授权,即:wordpress.*。

2、连接管理

1)连接工具

1、mysql
[root@db02 ~]# mysql -uroot -p123
[root@db02 ~]# mysql -uroot -p123 -e "show databases;"
-u:指定用户
-p:指定密码
-h:指定主机
-P:指定端口
-S:指定sock
-e:指定SQL(在命令行)
--protocol=name:指定连接方式(无意义,了解即可)

2、第三方工具
sqlyog、navicat

2)连接方式

1、socket连接
mysql -uroot -poldboy123 -S/application/mysql/tmp/mysql.sock
mysql -uroot -poldboy123

2、TCP/IP
mysql -uroot -poldboy123 -h10.0.0.51 -P3306

三、MySQL启动关闭流程

1、启动流程

先找启动脚本(名字可以自定义)→ 调用mysqld_safe程序 → 最后调用mysqld这个守护进程

 关于mysqld服务启动讲解

  1.   /etc/init.d/mysqld  start   →   mysqld
  2.   mysqld_safe  &     →   mysqld

 这两种启动方法本质上没有任何区别,因为我们使用/etc/init.d/mysqld这个脚本文件来启动服务;
 实际上这个脚本文件还是调用mysqld_safe这个文件来启动mysqld服务;
 
 问题:为什么要用mysqld_safe这个脚本文件来启动mysqld服务,而不是直接启动mysqld?
 mysqld_safe脚本会在启动mysqld服务后继续监控其运行情况,mysqld服务异常终止,mysqld_safe会尝试启动mysqld服务
总结::mysqld_safe启动并监视mysqld,如果因错误终止则重启mysqld。

2、关闭

1)/etc/init.d/mysqld stop 

2)mysqladmin -uroot -poldboy123 shutdown

3)kill -9 pid ?

4)killall mysqld ?

5)pkill mysqld ?

猜你喜欢

转载自blog.csdn.net/weixin_44558760/article/details/88790907
今日推荐