インストール、アーキテクチャと基本構成、および接続管理に関するmysqlの非常に詳細な概要

mysqlの導入とインストール

mysql分支:Oracle、mariadb、percona、RDS、TX

mysqlエンタープライズバージョンの選択:5.7.28+ 8.0.18+

mysql8.0.20をインストールします

上传和解压:
https://downloads.mysql.com/archives/get/p/23/file/mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz (软件包位置)
[root@db01 opt]# tar xf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz 	
[root@db01 opt]# ln -s /opt/mysql-8.0.20-linux-glibc2.12-x86_64 /usr/local/mysql
[root@db01 mysql]# vim /etc/profile
export PATH=/usr/local/mysql/bin:$PATH
[root@db01 mysql]# source /etc/profile
[root@db01 mysql]# mysql -V
mysql  Ver 8.0.20 for Linux on x86_64 (MySQL Community Server - GPL)

创建用户(mysql内部管理时需要一个非ROOT用户来进行管理)
[root@db01 ~]# useradd mysql

创建目录并授权
[root@db01 ~]# mkdir -p /data/3306/data
[root@db01 ~]# chown -R mysql. /data

准备配置文件
[root@db01 ~]# vim /etc/my.cnf
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/3306/data
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock

安装数据库的库文件
[root@db01 ~]# yum install libaio-devel -y

初始化数据库
[root@db01 ~]# mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/3306/data

准备启动脚本
[root@db01 ~]# cp /usr/local/mysql/bin/mysql.server /etc/init.d/mysqld
[root@db01 ~]# systemctl enable mysqld
[root@db01 ~]# systemctl restart mysqld
[root@db01 ~]# systemctl start mysqld

此时数据库就可以正常使用
[root@db01 ~]# mysql

Mysqlのアーキテクチャと基本的な管理

Mysql C / Sの動作原理
サーバー:mysqld
クライアント:mysql mysqldump開発ツール(sqlyog、navicat、workbench)API

Mysqlインスタンス
mysqld +マスタースレッド+ワーカースレッド+事前に割り当てられたメモリ

Mysqlプログラム構造
サーバー層:接続層SQL層
エンジン層:FS

MysqlアーキテクチャとSQLステートメント実行プロセス
https://www.processon.com/view/link/60212b8ee0b34d208a6c0f8b
ここに画像の説明を挿入

Mysql物理ストレージの理解
マクロの理解:データベースのライブラリはカタログデータベースのテーブルと同等であり、カタログのテーブルはディレクトリの下のファイルと同等です。
ミクロの理解:64の連続したページのエクステント領域(クラスター)のデフォルト1Mまで、ページページ:デフォルト16KB連続4ブロック、ブロック高速:デフォルト4KB、8連続512バイト

Mysqlの基本的な管理

ユーザー管理の
役割:データベースにログインし、データベースオブジェクトを管理します

定義
Username @ 'ホワイトリスト':ログインを許可されたIPアドレスのリスト。

xiaoming@'localhost'   允许本地登录
xiaoming@'10.0.0.%'    允许10.0.0.0/255.255.255.0
xiaomingo@'10.0.0.0/255.255.254.0'  
xiaoming@'10.0.0.5%'    

ユーザー管理

查询用户
mysql> select user,host,plugin,authentication_string from mysql.user;
创建用户
mysql> create user xiaoming@'localhost' identified by '123456';

注意:
8.0之后,不再支持grant一次性创建用户授权了.必须先建用户后授权.
8.0之后,密码插件改为caching_sha2_password,早期版本是mysql_native_password

修改用户
mysql> alter user xiaoming@'localhost' identified by '123'; (修改用户密码)
mysql> alter user xiaoming@'localhost' account lock; (上锁)
mysql> alter user xiaoming@'localhost' account unlock; (解锁)
mysql> drop user xiaoming@'localhost'; (删除用户)

権限の管理
役割:ユーザーがデータベースオブジェクトで実行できることを制限します。

查看所有的权限
mysql> show privileges;
授权表:
user  全局级别
db    单库级别
table 单表级别

例子1:给小明授权为本地的管理员
mysql> create user xiaoming@'localhost' identified with mysql_native_password by '123';
mysql> grant all on *.* to xiaoming@'localhost';

例子2:给小高授权为小高业务的业务用户
mysql> create user xiaogao@'localhost' identified with mysql_native_password by '123456';
mysql> grant select,update,detele,insert on xiaogao.* to xiaogao@'localhost';
查询小高权限
mysql> show grants for xiaogao@'localhost';
回收小高detele权限
mysql> revoke detele on xiaogao.* from xiaogao@'localhost';

接続管理

組み込みのクライアントプログラム
ソケットローカルソケットファイルsocket = /tmp/mysql.sock
アプリケーション:
[root @ db01〜] #mysql -uxiaoming -p123 -S /tmp/mysql.sock
前提条件:xiaoming
@ 'localhostはで作成する必要があります前進 '

TCP / IPの
前提:
remote @ '10 .0.0 % 'は事前に作成する必要があります
mysql> create user remote @ '10 .0.0。%'は '123'で識別されます;
mysql>すべてを許可します。toremote@ '10 .0 .0。% ';

アプリケーション:
[root @ db01〜] #mysql -uremote -p123 -h10.0.0.51 -P3306

おすすめ

転載: blog.csdn.net/weixin_49629796/article/details/113761763