视频链接
https://www.bilibili.com/video/BV1KW411u7vy
# 查看Linux服务器上是否安装过MySQL rpm -qa | grep -i mysql # 查询出所有mysql依赖包 # 1、拉取镜像 docker pull mysql:5.7 # 2、创建实例并启动 docker run -p 3306:3306 --name mysql \ -v /root/mysql/log:/var/log/mysql \ -v /root/mysql/data:/var/lib/mysql \ -v /root/mysql/conf:/etc/mysql \ -e MYSQL_ROOT_PASSWORD=333 \ -d mysql:5.7 # 3、mysql配置 /root/mysql/conf/my.conf [client] #mysqlde utf8字符集默认为3位的,不支持emoji表情及部分不常见的汉字,故推荐使用utf8mb4 default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] #设置client连接mysql时的字符集,防止乱码 init_connect='SET collation_connection = utf8_general_ci' init_connect='SET NAMES utf8' #数据库默认字符集 character-set-server=utf8 #数据库字符集对应一些排序等规则,注意要和character-set-server对应 collation-server=utf8_general_ci # 跳过mysql程序起动时的字符参数设置 ,使用服务器端字符集设置 skip-character-set-client-handshake # 禁止MySQL对外部连接进行DNS解析,使用这一选项可以消除MySQL进行DNS解析的时间。但需要注意,如果开启该选项,则所有远程主机连接授权都要使用IP地址方式,否则MySQL将无法正常处理连接请求! skip-name-resolve # 4、重启mysql容器 docker restart mysql # 5、进入到mysql容器 docker exec -it mysql /bin/bash # 6、查看修改的配置文件 cat /etc/mysql/my.conf
Docker
容器就是一个小型的Linux
环境,进入到MySQL
容器中。
docker exec -it mysql /bin/bash
Linux
环境下MySQL
的安装目录。
路径 | 解释 |
---|---|
/var/lib/mysql |
MySQL数据库文件存放位置 |
/usr/share/mysql |
错误消息和字符集文件配置 |
/usr/bin |
客户端程序和脚本 |
/etc/init.d/mysql |
启停脚本相关 |
# 1、进入到mysql数据库并查看字符集 # show variables like 'character%'; # show variables like '%char%'; mysql> show variables like 'character%'; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.00 sec) mysql> show variables like '%char%'; +--------------------------+----------------------------+ | Variable_name | Value | +--------------------------+----------------------------+ | character_set_client | utf8 | | character_set_connection | utf8 | | character_set_database | utf8 | | character_set_filesystem | binary | | character_set_results | utf8 | | character_set_server | utf8 | | character_set_system | utf8 | | character_sets_dir | /usr/share/mysql/charsets/ | +--------------------------+----------------------------+ 8 rows in set (0.01 sec)
MySQL5.7
配置文件位置是/etc/my.cnf
或者/etc/mysql/my.cnf
,如果字符集不是utf-8
直接进入配置文件修改即可。
[client] default-character-set=utf8 [mysql] default-character-set=utf8 [mysqld] # 设置client连接mysql时的字符集,防止乱码 init_connect='SET NAMES utf8' init_connect='SET collation_connection = utf8_general_ci' # 数据库默认字符集 character-set-server=utf8 #数据库字符集对应一些排序等规则,注意要和character-set-server对应 collation-server=utf8_general_ci # 跳过mysql程序起动时的字符参数设置 ,使用服务器端字符集设置 skip-character-set-client-handshake # 禁止MySQL对外部连接进行DNS解析,使用这一选项可以消除MySQL进行DNS解析的时间。但需要注意,如果开启该选项,则所有远程主机连接授权都要使用IP地址方式,否则MySQL将无法正常处理连接请求! skip-name-resolve
注意:安装MySQL
完毕之后,第一件事就是修改字符集编码。
MySQL
配置文件讲解:https://www.cnblogs.com/gaoyuechen/p/10273102.html
1、二进制日志log-bin
:主从复制。
# my,cnf # 开启mysql binlog功能 log-bin=mysql-bin
2、错误日志log-error
:默认是关闭的,记录严重的警告和错误信息,每次启动和关闭的详细信息等。
# my,cnf # 数据库错误日志文件 log-error = error.log
3、查询日志log
:默认关闭,记录查询的sql
语句,如果开启会降低MySQL
整体的性能,因为记录日志需要消耗系统资源。
# my,cnf # 慢查询sql日志设置 slow_query_log = 1 slow_query_log_file = slow.log
4、数据文件。
frm文件
:存放表结构。myd
文件:存放表数据。myi
文件:存放表索引。# mysql5.7 使用.frm文件来存储表结构 # 使用 .ibd文件来存储表索引和表数据 -rw-r----- 1 mysql mysql 8988 Jun 25 09:31 pms_category.frm -rw-r----- 1 mysql mysql 245760 Jul 21 10:01 pms_category.ibd
MySQL5.7
的Innodb
存储引擎可将所有数据存放于ibdata*
的共享表空间,也可将每张表存放于独立的.ibd
文件的独立表空间。
共享表空间以及独立表空间都是针对数据的存储方式而言的。
data
目录下。 默认的文件名为:ibdata1
初始化为10M
。.frm
表描述文件,还有一个.ibd
文件。 其中这个文件包括了单独一个表的数据内容以及索引内容,默认情况下它的存储位置也是在表的位置之中。在配置文件my.cnf
中设置: innodb_file_per_table
。