mysql在线基本_MySQL基本配置
注:本文总结自掘金小册《MySQL 是怎样运行的:从根儿上理解 MySQL》
MySQL程序结构
MySQL是CS架构,客户端进程默认名称为mysql,服务端进程默认名称为mysqld。
Linux系统下,通常将MySQL安装在/usr/local/目录下,此时/usr/local/mysql/bin目录下可见各种客户端与服务器端程序,例如:mysql,mysql.server,mysqladmin,mysqld,mysqld_safe,mysqlbinlog,mysqlcheck等。
程序启停
Linux下如何启动MySQL服务器:
运行mysqld;
运行监控程序,用于在mysqld挂掉时重启;
重定向错误日志到日志文件。
运行mysqld程序,不常用;
运行mysqld_safe:mysqld_safe是一个启动脚本,该脚本会做几个事情:
运行mysql.server:mysql.server也是一个启动脚本,调用mysqld_safe,调用方法为mysql.server start和mysql.server stop;
Windows下如何启动MySQL服务器:
将mysqld注册为服务:举例:"C:\Program Files\MySQL\MySQL Server 5.7\bin\mysqld" --install;
启动和停止:net start MySQL和net stop MySQL
启动客户端程序:mysql -h主机名 -u用户名 -p回车后输入密码;
MySQL处理客户端请求的过程:连接-缓存-解析-优化-引擎。完成优化后,会生成执行计划,按照执行计划调用引擎API获取数据;
innoDB的特点:支持事务(transactions)、分布式事务(XA)、行级锁(row-level locking)、外键(foreign keys)、部分事务回滚(SavePoints);
指定表的存储引擎:
创建表时指定:create table 表名(...)engine = 引擎名;
修改表的引擎:alter table 表名 engine = 引擎名;
设置系统变量
命令行
在通过命令行启动程序时,可以通过命令行参数方式指定配置参数,此种方式只对当次启动有效
例如:
mysql -u root # 短选项方式指定用户名
mysql --user=root # 长选项方式指定用户名(注意:长选项方式等号两边不能有空格)
mysqld --default-storage-engine=MyISAM #长选项方式指定默认存储引擎
配置文件
MySQL会按照顺序从如下目录读取配置文件,并以最后一个为准,配置文件名称通常为my.ini或my.cnf,功能完全一样。
windows
C:\windows\my.ini
C:\my.ini
mysql安装目录\my.ini
通过命令行参数--defaults-extra-file指定位置,例如:mysqld --defaults-extra-file=C:\Users\my_extra_file.ini
linux
/etc/my.cnf
/etc/mysql/my.cnf
编译安装目录/my.cnf ,在自己编译mysql安装时使用
$MYSQL_HOME$/my.cnf 环境变量路径下,只用于服务器端
defaults-extra-file 命令行指定配置文件路径
~/.my.cnf 用户目录下配置
说明:如果没有配置环境变量,mysqld_safe程序会自动将环境变量置为mysql安装目录,因此默认会使用mysql安装目录下的配置文件;使用mysql.server启动会自动调用mysqld_safe程序;
配置文件内容
mysql配置文件的内容分为很多个组,例如:server、mysqld、mysqld_safe、client、mysql、mysqladmin等;
配置项格式为:option = value,等号两边可以有空格;
server组配置项用于所有服务器端程序,如:server、mysqld、mysqld_safe;
client组配置项则用于客户端程序,如:mysql、mysqladmin、mysqldump;
在同一个配置文件中,配置按照从上到下的顺序配置,如果有相同功能的参数,以最后一个为准;
还可以通过defaults-file命令行参数指定配置路径,如果找不到会直接报错,而不会去扫描以上目录;
运行时修改变量
运行时可以通过客户端修改系统变量,此时系统变量分为GLOBAL和SESSION,即全局变量和会话变量;
例如:
# 设置全局变量,默认存储引擎为MyISAM,两种写法都可以
set global default_storage_engine = MyISAM;
set @@global.default_storage_engine = MyISAM;
# 设置会话变量,不标明global还是session则默认为session
set session default_storage_engine = MyISAM;
set @@session.default_storage_engine = MyISAM;
set default_storage_engine = MyISAM;
需要注意,如果修改了global的系统变量,当前session变量不会跟着变,后续的session才会跟global一致;
状态变量
状态变量用于显示服务器当前状态,例如:
show status like 'thread%';
MySQL中字符集
通常意义上的UTF-8字符集表示1个字符需要1~4个字节,常用字符通常需要1~3个字节,一些特殊字符例如emoji则需要4个字节来存储;
mysql中的utf8字符集又叫utf8mb3,是阉割版的utf8字符集,用1~3个字节表示一个字符,用于常用字符;如果需要存储emoji表情之类的特殊字符,则需要使用utf8mb4字符集,这是完整的utf8字符集;
通常使用utf8字符集,即utf8mb3字符集,搭配utf8_general_ci比较规则,这个比较规则忽略大小写;
比较规则对照表:
后缀
英文释义
描述
_ai
accent insensitive
不区分重音
_as
accent sensitive
区分重音
_ci
case insensitive
不区分大小写
_cs
case sensitive
区分大小写
_bin
binary
以二进制方式比较
mysql中字符集和比较规则分为4个级别:服务器级别、数据库级别、表级别、列级别。
服务器级别:通过系统变量指定字符集和比较规则:character_set_server和collation_server
数据库级别:在创建数据库时指定,语法为:create database 数据库名 character set 字符集名 collate 比较规则名;
表级别:在建表时指定,语法为:create table 表名 (...) character set 字符集名 collate 比较规则名;
列级别:在建表时指定每个字段的字符集和比较规则,语法为:create table 表名 (
列名1 类型 character set 字符集名 collate 比较规则名,
列名2 ...
);
如果没有指定,则会默认继承上一级的字符集和比较规则;
mysql在线基本_MySQL基本配置相关推荐
- mysql在线复制_mysql的两种复制模式
mysql的复制术语 扩展的方式: Scale up Scale Out 复制: 向外扩展 二进制日志 单向 复制功用: 数据分布 负载均衡:读操作,适用于读密集型的应用 备份 高可用和故障切换 My ...
- 配置mysql读写主从_Mysql主从配置,实现读写分离
MySQL数据库监控功能作为SUM服务器监控软件的一项基本功能,从SUM服务器监控软件发布开始就一直作为其核心功能之一,大量用户环境中正式使用,具有稳定.易用.指标齐全等特点. 通过SUM可以快速监控 ...
- window mysql安全设置_mysql安全配置方案
1 限制访问mysql端口的ip windows可以通过windows防火墙或者ipsec来限制,linux下可以通过iptables来限制. 2 修改mysql的端口 windows下可以修改配置文 ...
- MySQL主从压_mysql主从配置
在同一台服务器中建立mysql主从 mysql-5.1.72-linux-i686-glibc23.tar.gz 二:搭建步骤 1.下载:cd /usr/local/src ;wget http:// ...
- mysql router测试_MySQL 主从复制配置 + MySQL Router 部署使用测试
三.验证测试 1.读写分离测试 读写分离是通过在配置文件中配置的不同端口实现 由于MySQLrouter节点未安装mysql客户端程序,所以在mysqldb1节点测试 登录写节点:端口7001 mys ...
- mysql数据库安全配置文件_MySQL数据库安全配置
MySQL数据库安全配置 1.前言 MySQL 是完全网络化的跨平台关系型数据库系统,同时是具有客户机/服务器体系结构的分布式数据库管理系统.它具有功能强.使用简便.管理方便.运行速度快.安全可靠性强 ...
- mysql在线复制_mysql如何在线修改主从复制选项
前言: MySQL最常用的架构就是主从复制了,其实主从复制有很多选项,特别是在从库端,我们可以设置复制过滤,比如说忽略某张表或某个库.这些过滤选项都是可以在线修改而不用重启的.原来对这块了解不多,最近 ...
- iis mysql版本切换_MySQL+PHP配置 Windows系统IIS版(转)
1.下载 MySQL下载地址:http://dev.mysql.com/downloads/mysql/5.1.html->Windows (x86, 32-bit), MSI Installe ...
- mysql 主从优点_MySql主从配置实践及其优势浅谈
1.增加两个MySQL,我将C:\xampp\mysql下的MYSQL复制了一份,放到D:\Mysql2\Mysql5.1 修改my.ini(linux下应该是my.cnf): [client] po ...
最新文章
- Java 参数后面跟三个... 的作用
- javaScript中的事件对象event是怎样
- hexo + github 搭建个人博客
- 亮剑吧,掏出你吃灰的单片机板子。
- Android 核心分析之十二Android GEWS窗口管理之基本架构原理
- C# - Span 全面介绍:探索 .NET 新增的重要组成部分
- java 方法委托托管_Java Web托管选项流程图
- 目录指南中的Python列表文件-listdir VS system(“ ls”)通过示例进行解释
- 分析了 9 万条程序员招聘数据,Python 薪资竟反超 Java?
- sysdate取年取月取日
- IIS与ASP.NET Http Runtime Pipeline
- WampServer中MySQL中文乱码解决
- Unity 安装个人免费版步骤详解
- 异常处理 | manual close is not allowed over a Spring managed SqlSession
- Kettle8.2查询组件之数据库查询
- 超级计算机 人脑,迄今为止没有一部超级计算机的综合能力超过人脑
- 阿里云短信服务-个人账户测试短信服务
- 一文读懂 | 数据中台如何为企业赋能?
- uiautomator2+ tesseract 智能识别文字实现手游辅助外挂,打怪刷装备快人一步
- 验证“哥德巴赫猜想”思路分析
热门文章
- Mastercam 2017 图形阵列(矩形阵列与环形阵列)
- 浅谈IT行业加班有没有价值
- 来免费领养blog绿豆蛙宠物吧,和QQ宠物差不多
- 无法安装office此计算机安装了32位,在电脑上安装64位Office2013出错提示找到了32位程序如何解决...
- 上市P2P转型电商:和信贷推会员制购物平台,前车之鉴今犹在
- 【2021-12-11】在 Windows 系统下,迁移 Android Studio 的 Android 虚拟设备(AVD)到非系统分区,释放系统盘空间
- echarts 中国地图飞机实现demo 中国地图路线飞行 echarts飞行
- 利用PhoneGap技术将“捕鱼达人”网页游戏移植到Android手机
- python queue 查询是否在队列中_Python queue队列
- 经济数据预测 | Python实现CNN-LSTM股票价格预测时间序列预测