一、前言二、概述三、环境准备四、安装MySQL5.5.35五、新建支持多实例的配置文件(我这里配置的是四个实例)六、初始化多实例数据库七、提供管理脚本mysqld_mult
2.背景/需求、注意事项
(1).背景与需求
(2).注意事项
三、环境准备
1.安装yum源
[root@node1 src]# wget [root@node1 src]# rpm -ivh epel-release-6-8.noarch.rpm2.同步时间
[root@node1 src]# yum install -y ntp [root@node1 src]# ntpdate 202.120.2.101 [root@node1 src]# hwclock –w3.安装mysql5.5依赖包
[root@node1 ~]# yum install -y autoconf* automake* zlib* libxml* ncurses-devel* libgcrypt* libtool* openssl*4.安装cmake
[root@node1 ~]# yum install -y cmake四、安装MySQL 5.5.35
1.创建安装目录与数据存放目录
[root@node1 ~]# mkdir /data/mysql [root@node1 ~]# mkdir /data/mysql/data2.创建mysql用户与组
[root@node1 ~]# useradd mysql [root@node1 ~]# id mysql uid=500(mysql) gid=500(mysql) 组=500(mysql)3.授权安装目录与数据目录
[root@node1 ~]# chown -R mysql.mysql /data/mysql/ [root@node1 ~]# chown -R mysql.mysql /data/mysql/data4.安装mysql
[root@node1 ~]# cd src/ [root@node1 src]# tar xf mysql-5.5.35.tar.gz [root@node1 src]# cd mysql-5.5.35 [root@node1 mysql-5.5.35]# cmake -DCMAKE_INSTALL_PREFIX=/data/mysql -DSYSCONFDIR=/data/mysql/etc -DMYSQL_DATADIR=/data/mysql/data -DMYSQL_TCP_PORT=3306 -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock -DMYSQL_USER=mysql -DEXTRA_CHARSETS=all -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 [root@node1 mysql-5.5.35]# make && make install好了,到这里我们的mysql就安装完成了,下面我们为mysql提供多实例配置文件。
五、新建支持多实例的配置文件(我这里配置的是四个实例)
1.删除默认的数据目录
[root@node1 ~]# cd /data/mysql/ [root@node1 mysql]# rm -rf data2.创建多实例配置需要的目录
[root@node1 mysql]# mkdir etc tmp run log binlogs data data2 data3 data4 [root@node1 mysql]# chown -R mysql.mysql tmp run log binlogs data data2 data3 data43.提供配置文件
[root@node1 ~]# cd src/ [root@node1 src]# cd mysql-5.5.35 [root@node1 mysql-5.5.35]# cp support-files/my-small.cnf /data/mysql/etc/my.cnf [root@node1 ~]# cd /data/mysql/etc/ [root@node1 etc]# vim my.cnf # This server may run 4+ separate instances. So we use mysqld_multi to manage their services. [client] default-character-set = utf8 [mysqld_multi] mysqld = /data/mysql/bin/mysqld_safe mysqladmin = /data/mysql/bin/mysqladmin log = /data/mysql/log/mysqld_multi.log user = root #password = # This is the general purpose database. # The locations are default. # They are left in [mysqld] in case the server is started normally instead of by mysqld_multi. [mysqld1] socket = /data/mysql/run/mysqld.sock port = 3306 pid-file = /data/mysql/run/mysqld.pid datadir = /data/mysql/data lc-messages-dir = /data/mysql/share/english # These support master - master replication #auto-increment-increment = 4 #auto-increment-offset = 1 # Since it is master 1 log-bin = /data/mysql/binlogs/bin-log-mysqld1 log-bin-index = /data/mysql/binlogs/bin-log-mysqld1.index #binlog-do-db = # Leave this blank if you want to control it on slave max_binlog_size = 1024M # This is exlusively for mysqld2 # It is on 3307 with data directory /data/mysqld/data2 [mysqld2] socket = /data/mysql/run/mysqld.sock2 port = 3307 pid-file = /data/mysql/run/mysqld.pid2 datadir = /data/mysql/data2 lc-messages-dir = /data/mysql/share/english # Disable DNS lookups #skip-name-resolve # These support master - slave replication log-bin = /data/mysql/binlogs/bin-log-mysqld2 log-bin-index = /data/mysql/binlogs/bin-log-mysqld2.index #binlog-do-db = # Leave this blank if you want to control it on slave max_binlog_size = 1024M # Relay log settings #relay-log = /data/mysql/log/relay-log-mysqld2 #relay-log-index = /data/mysql/log/relay-log-mysqld2.index #relay-log-space-limit = 4G # Slow query log settings #log-slow-queries = /data/mysql/log/slow-log-mysqld2 #long_query_time = 2 #log-queries-not-using-indexes # This is exlusively for mysqld3 # It is on 3308 with data directory /data/mysqld/data3 [mysqld3] socket = /data/mysql/run/mysqld.sock3 port = 3308 pid-file = /data/mysql/run/mysqld.pid3 datadir = /data/mysql/data3 lc-messages-dir = /data/mysql/share/english #Disable DNS lookups #skip-name-resolve # These support master - slave replication log-bin = /data/mysql/binlogs/bin-log-mysqld3 log-bin-index = /data/mysql/binlogs/bin-log-mysqld3.index #binlog-do-db = # Leave this blank if you want to control it on slave max_binlog_size = 1024M # This is exlusively for mysqld4 # It is on 3309 with data directory /data/mysqld/data4 [mysqld4] socket = /data/mysql/run/mysqld.sock4 port = 3309 pid-file = /data/mysql/run/mysqld.pid4 datadir = /data/mysql/data4 lc-messages-dir = /data/mysql/share/english # Disable DNS lookups #skip-name-resolve # These support master - slave replication log-bin = /data/mysql/binlogs/bin-log-mysqld4 log-bin-index = /data/mysql/binlogs/bin-log-mysqld4.index #binlog-do-db = # Leave this blank if you want to control it on slave max_binlog_size = 1024M # The rest of the my.cnf is shared # Here follows entries for some specific programs # The MySQL server [mysqld] basedir = /data/mysql tmpdir = /data/mysql/tmp socket = /data/mysql/run/mysqld.sock port = 3306 pid-file = /data/mysql/run/mysqld.pid datadir = /data/mysql/data lc-messages-dir = /data/mysql/share/english skip-external-locking key_buffer_size = 16K max_allowed_packet = 1M table_open_cache = 4 sort_buffer_size = 64K read_buffer_size = 256K read_rnd_buffer_size = 256K net_buffer_length = 2K thread_stack = 128K # Increase the max connections max_connections = 2 # The expiration time for logs, including binlogs expire_logs_days = 14 # Set the character as utf8 character-set-server = utf8 collation-server = utf8_unicode_ci # This is usually only needed when setting up chained replication #log-slave-updates # Enable this to make replication more resilient against server crashes and restarts # but can cause higher I/O on the server #sync_binlog = 1 # The server id, should be unique in same network server-id = 1 # Set this to force MySQL to use a particular engine/table-type for new tables # This setting can still be overridden by specifying the engine explicitly # in the CREATE TABLE statement default-storage-engine = INNODB # Enable Per Table Data for InnoDB to shrink ibdata1 innodb_file_per_table = 1 # Uncomment the following if you are using InnoDB tables #innodb_data_home_dir = /data/mysql/data #innodb_data_file_path = ibdata1:10M:autoextend #innodb_log_group_home_dir = /data/mysql/data # You can set .._buffer_pool_size up to 50 - 80 % of RAM # but beware of setting memory usage too high innodb_buffer_pool_size = 16M innodb_additional_mem_pool_size = 2M # Set .._log_file_size to 25 % of buffer pool size innodb_log_file_size = 5M innodb_log_buffer_size = 8M innodb_flush_log_at_trx_commit = 1 innodb_lock_wait_timeout = 50 [mysqldump] quick max_allowed_packet = 16M [mysql] no-auto-rehash [myisamchk] key_buffer_size = 8M sort_buffer_size = 8M [mysqlhotcopy] interactive-timeout [mysql.server] user = mysql [mysqld_safe] log-error = /data/mysql/log/mysqld.log pid-file = /data/mysql/run/mysqld.pid open-files-limit = 8192
InnoDB使用redologs和undologs确保数据一致性和可靠性。1.redologs记录数据页修改,确保崩溃恢复和事务持久性。2.undologs记录数据原始值,支持事务回滚和MVCC。

EXPLAIN命令的关键指标包括type、key、rows和Extra。1)type反映查询的访问类型,值越高效率越高,如const优于ALL。2)key显示使用的索引,NULL表示无索引。3)rows预估扫描行数,影响查询性能。4)Extra提供额外信息,如Usingfilesort提示需要优化。

Usingtemporary在MySQL查询中表示需要创建临时表,常见于使用DISTINCT、GROUPBY或非索引列的ORDERBY。可以通过优化索引和重写查询避免其出现,提升查询性能。具体来说,Usingtemporary出现在EXPLAIN输出中时,意味着MySQL需要创建临时表来处理查询。这通常发生在以下情况:1)使用DISTINCT或GROUPBY时进行去重或分组;2)ORDERBY包含非索引列时进行排序;3)使用复杂的子查询或联接操作。优化方法包括:1)为ORDERBY和GROUPB

MySQL/InnoDB支持四种事务隔离级别:ReadUncommitted、ReadCommitted、RepeatableRead和Serializable。1.ReadUncommitted允许读取未提交数据,可能导致脏读。2.ReadCommitted避免脏读,但可能发生不可重复读。3.RepeatableRead是默认级别,避免脏读和不可重复读,但可能发生幻读。4.Serializable避免所有并发问题,但降低并发性。选择合适的隔离级别需平衡数据一致性和性能需求。

MySQL适合Web应用和内容管理系统,因其开源、高性能和易用性而受欢迎。1)与PostgreSQL相比,MySQL在简单查询和高并发读操作上表现更好。2)相较Oracle,MySQL因开源和低成本更受中小企业青睐。3)对比MicrosoftSQLServer,MySQL更适合跨平台应用。4)与MongoDB不同,MySQL更适用于结构化数据和事务处理。

MySQL索引基数对查询性能有显着影响:1.高基数索引能更有效地缩小数据范围,提高查询效率;2.低基数索引可能导致全表扫描,降低查询性能;3.在联合索引中,应将高基数列放在前面以优化查询。

MySQL学习路径包括基础知识、核心概念、使用示例和优化技巧。1)了解表、行、列、SQL查询等基础概念。2)学习MySQL的定义、工作原理和优势。3)掌握基本CRUD操作和高级用法,如索引和存储过程。4)熟悉常见错误调试和性能优化建议,如合理使用索引和优化查询。通过这些步骤,你将全面掌握MySQL的使用和优化。

MySQL在现实世界的应用包括基础数据库设计和复杂查询优化。1)基本用法:用于存储和管理用户数据,如插入、查询、更新和删除用户信息。2)高级用法:处理复杂业务逻辑,如电子商务平台的订单和库存管理。3)性能优化:通过合理使用索引、分区表和查询缓存来提升性能。


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

MinGW - 适用于 Windows 的极简 GNU
这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

mPDF
mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

安全考试浏览器
Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)