使用mysqld_multi实现单系统中配置多个MySQL服务器实例_MySQL
本文讲利用MySQL源码安装MySQL并用mysqld_multi配置多实例。
1、下载MySQL源码安装版本
到MySQL官网查找到相应版本下载,本文下载的是5.1版本
代码如下:
wget -c ftp://ftp.mirrorservice.org/sites/ftp.mysql.com/Downloads/MySQL-5.1/mysql-5.1.60.tar.gz
2、解压安装
代码如下:
tar -zxv -f mysql-5.1.60.tar.gz
./configure --prefix=/usr/local/mysql --with-charset=utf8
--with-extra-charset=all --enable-thread-safe-client --enable-assembler
--with-readline --with-big-tables
--with-named-curses-libs=/usr/lib/libncursesw.so.5
make && make install
3、添加用户和用户组
代码如下:
groupadd mysql #添加mysql用户组
useradd -g mysql mysql #创建mysql用户并把它放到mysql组下
chown -R root:mysql /usr/local/mysql #修改mysql文件属性
4、初始化数据目录
代码如下:
#把用到的工具添加到/usr/bin目录
ln -s /usr/local/mysql/bin/mysqld_multi /usr/bin/mysqld_multi
ln -s /usr/local/mysql/bin/mysql_install_db /usr/bin/mysql_install_db
#初始化四个数据目录
mysql_install_db --datadir=/usr/local/var/mysql1 --user=mysql
mysql_install_db --datadir=/usr/local/var/mysql2 --user=mysql
mysql_install_db --datadir=/usr/local/var/mysql3 --user=mysql
mysql_install_db --datadir=/usr/local/var/mysql4 --user=mysql
#修改属性
chown -R mysql /usr/local/var/mysql1
chown -R mysql /usr/local/var/mysql2
chown -R mysql /usr/local/var/mysql3
chown -R mysql /usr/local/var/mysql4
5、配置多实例启动脚本
从MySQL的源码中把复制到/etc/init.d/目录下
代码如下:
cp /usr/local/src/mysql-5.1.60/support-files/mysqld_multi.server /etc/init.d/mysqld_multi.server
#修改basedir和bindir为安装路径
basedir=/usr/local/mysql
bindir=/usr/local/mysql/bin
6、配置多实例数据库配置文件
用mysqld_multi工具查看该配置文件的模板方法,命令为:mysqld_multi --example
在/etc/目录下创建创建文件/etc/mysqld_multi.cnf,把mysqld_multi --example产生的文件粘进去,修改相应属性,如:mysqld,mysqladmin,socket,port,pid-file,datadir,user等。
代码如下:
[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
#user = mysql
#password = my_password
[mysqld1]
socket = /usr/local/var/mysql1/mysql1.sock
port = 3306
pid-file = /usr/local/var/mysql1/mysql1.pid
datadir = /usr/local/var/mysql1
#language = /usr/local/mysql/share/mysql/english
user = mysql
[mysqld2]
socket = /usr/local/var/mysql2/mysql2.sock
port = 3307
pid-file = /usr/local/var/mysql2/mysql2.pid
datadir = /usr/local/var/mysql2
#language = /usr/local/mysql/share/mysql/english
user = mysql
[mysqld3]
socket = /usr/local/var/mysql3/mysql3.sock
port = 3308
pid-file = /usr/local/var/mysql3/mysql3.pid
datadir = /usr/local/var/mysql3
#language = /usr/local/mysql/share/mysql/english
user = mysql
[mysqld4]
socket = /usr/local/var/mysql4/mysql4.sock
port = 3309
pid-file = /usr/local/var/mysql4/mysql4.pid
datadir = /usr/local/var/mysql4
#language = /usr/local/mysql/share/mysql/english
user = mysql
7、启动多实例数据库
代码如下:
将/usr/local/mysql/bin加到$PATH环境变量里
export PATH=/usr/local/mysql/bin:$PATH
#查看数据库状态
mysqld_multi --defaults-extra-file=/etc/mysqld_multi.cnf report
#结果都为没有运行
Reporting MySQL servers
MySQL server from group: mysqld1 is not running
MySQL server from group: mysqld2 is not running
MySQL server from group: mysqld3 is not running
MySQL server from group: mysqld4 is not running
#启动
mysqld_multi --defaults-extra-file=/etc/mysqld_multi.cnf start
#结果为
Reporting MySQL servers
MySQL server from group: mysqld1 is not running
MySQL server from group: mysqld2 is not running
MySQL server from group: mysqld3 is not running
MySQL server from group: mysqld4 is not running
#启动具体某一个实例可在start、stop后面加上具体数据1,2,3等
8、查看运行结果
代码如下:
#查看相应端口是否已经被监听
netstat -tunlp
#查看是否有活动进程
ps -aux|grep mysql
9、登录相应数据库
代码如下:
#进入端口为3306的数据库
mysql -uroot -p -h127.0.0.1 -P3306
#通过sock文件登录
mysql -uroot -p -S /usr/local/var/mysql1/mysql1.sock
#查看socket文件
mysql> SHOW VARIABLES LIKE 'socket';
#查看pid文件
mysql> SHOW VARIABLES LIKE '%pid%';

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

Video Face Swap
Swap faces in any video effortlessly with our completely free AI face swap tool!

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics











The main role of MySQL in web applications is to store and manage data. 1.MySQL efficiently processes user information, product catalogs, transaction records and other data. 2. Through SQL query, developers can extract information from the database to generate dynamic content. 3.MySQL works based on the client-server model to ensure acceptable query speed.

InnoDB uses redologs and undologs to ensure data consistency and reliability. 1.redologs record data page modification to ensure crash recovery and transaction persistence. 2.undologs records the original data value and supports transaction rollback and MVCC.

MySQL is an open source relational database management system, mainly used to store and retrieve data quickly and reliably. Its working principle includes client requests, query resolution, execution of queries and return results. Examples of usage include creating tables, inserting and querying data, and advanced features such as JOIN operations. Common errors involve SQL syntax, data types, and permissions, and optimization suggestions include the use of indexes, optimized queries, and partitioning of tables.

MySQL's position in databases and programming is very important. It is an open source relational database management system that is widely used in various application scenarios. 1) MySQL provides efficient data storage, organization and retrieval functions, supporting Web, mobile and enterprise-level systems. 2) It uses a client-server architecture, supports multiple storage engines and index optimization. 3) Basic usages include creating tables and inserting data, and advanced usages involve multi-table JOINs and complex queries. 4) Frequently asked questions such as SQL syntax errors and performance issues can be debugged through the EXPLAIN command and slow query log. 5) Performance optimization methods include rational use of indexes, optimized query and use of caches. Best practices include using transactions and PreparedStatemen

MySQL is chosen for its performance, reliability, ease of use, and community support. 1.MySQL provides efficient data storage and retrieval functions, supporting multiple data types and advanced query operations. 2. Adopt client-server architecture and multiple storage engines to support transaction and query optimization. 3. Easy to use, supports a variety of operating systems and programming languages. 4. Have strong community support and provide rich resources and solutions.

Compared with other programming languages, MySQL is mainly used to store and manage data, while other languages such as Python, Java, and C are used for logical processing and application development. MySQL is known for its high performance, scalability and cross-platform support, suitable for data management needs, while other languages have advantages in their respective fields such as data analytics, enterprise applications, and system programming.

MySQL is suitable for small and large enterprises. 1) Small businesses can use MySQL for basic data management, such as storing customer information. 2) Large enterprises can use MySQL to process massive data and complex business logic to optimize query performance and transaction processing.

MySQL index cardinality has a significant impact on query performance: 1. High cardinality index can more effectively narrow the data range and improve query efficiency; 2. Low cardinality index may lead to full table scanning and reduce query performance; 3. In joint index, high cardinality sequences should be placed in front to optimize query.
