视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
详细介绍MySQL之-Centos安装多个mysql数据库的配置实例
2020-11-09 09:08:48 责编:小采
文档
 Linux操作系统:centOS6.5 bit(安装了系统默认开发包)

数据库一:
MYSQL版本:mysql-5.0.56
PORT:3306
系统目录:/usr/local/mysql3306
数据库二:
MYSQL版本:mysql-5.1.72
PORT:3307

系统目录:/usr/local/mysql3307

一.安装开发包(使用默认CENTOS更新源):

<pre name="code" class="plain"># yum -y install wget gcc-c++ ncurses ncurses-devel cmake make perl bison openssl 
openssl-devel gcc* libxml2 libxml2-devel curl-devel libjpeg* libpng* freetype*

二.关闭iptables和SELINUX

# service iptables stop
# setenforce 0
# vi /etc/sysconfig/selinux
---------------
SELINUX=disabled

三.安装mysql数据库实例

1.下载编译包

# su -
# mkdir ~/src
# cd src
# wget http://www.gxlcms.com/
# wget http://www.gxlcms.com/

2.安装前的初始配置工作:

1).创建一个Mysql用户
# useradd mysql
2).新建mysql下data和log子目录
# mkdir -p /usr/local/mysql{3306,3307}/data 
# mkdir -p /usr/local/mysql{3306,3307}/log
3).修改目录的所属者以及所属组权限
# chown -R mysql:mysql /usr/local/mysql{3306,3307}/data/
# chown -R mysql:mysql /usr/local/mysql{3306,3307}/log/
# chmod 750 /usr/local/mysql{3306,3307}/data 
# chmod 750 /usr/local/mysql{3306,3307}/log
4).创建mysql相关目录并配置权限
# mkdir -p /usr/local/mysql{3306,3307}/etc
# chown -R mysql.mysql /usr/local/mysql{3306,3307}/etc
# mkdir -p /var/run/mysqld{3306,3307}
# chown -R mysql.mysql /var/run/mysqld{3306,3307}
# mkdir -p /var/lib/mysqld{3306,3307}
# chown -R mysql.mysql /var/lib/mysqld{3306,3307}
# cp /etc/my.cnf /usr/local/mysql{3306,3307}/etc

3.解包编译安装

编译数据库一:
# cd ~/src
# tar -zxvf mysql-5.0.56.tar.gz 
# cd mysql-5.0.56 
./configure --prefix=/usr/local/mysql3306 --with-mysqld-user=mysql --sysconfdir=/usr/local/mysql3306/etc 
--localstatedir=/usr/local/mysql3306/data --with-tcp-port=3306 -enable-assembler --with-mysqld-ldflags=-all-static 
--with-charset=utf8 --with-extra-charsets=utf-8 -with-extra-charsets=all --with-plugins=csv,innobase,myisam,heap 
--with-unix-socket-path=/tmp/mysql3306.sock
# make
# make install
编译数据库二:
# cd ~/src
# tar -zxvf mysql-5.1.71.tar.gz 
# cd mysql-5.1.71
./configure --prefix=/usr/local/mysql3307 --with-mysqld-user=mysql --sysconfdir=/usr/local/mysql3307/etc 
--localstatedir=/usr/local/mysql3307/data --with-tcp-port=3307 -enable-assembler --with-mysqld-ldflags=-all-static 
--with-charset=utf8 --with-extra-charsets=utf-8 -with-extra-charsets=all --with-plugins=csv,innobase,myisam,heap 
--with-unix-socket-path=/tmp/mysql3307.sock
# make
# make install

4.编写mysql配置项:

数据库一配置:
# vi /usr/local/mysql3306/etc/my.cnf
-------------------------------------------------------
[mysqld]
datadir=/usr/local/mysql3306/data
socket=/tmp/mysql3306.sock
user=mysql
port=3306
pid-file=/var/lib/mysqld3306/mysql.pid
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
max_connections= 16384
skip-name-resolve
skip-locking
key_buffer = 256M
max_allowed_packet = 32M
table_cache = 3072
thread_cache_size = 256
sort_buffer_size = 16M
read_buffer_size = 4M
read_rnd_buffer_size = 16M
net_buffer_length = 256M
thread_stack = 8M
query_cache_size = 128M
query_cache_limit = 2M
wait_timeout=7200
interactive_timeout=7200
#log
log-error=/usr/local/mysql3306/log/error.log
log=/usr/local/mysql3306/log/mysql.log
long_query_time=2
log-slow-queries= /usr/local/mysql3306/log/slowquery.log
log-bin= /usr/local/mysql3306/log/bin.log
expire_logs_days = 15
sync_binlog = 1
max_binlog_cache_size = 4294967295
local-infile=0
default-storage-engine=INNODB 
[mysqld_safe]
log-error=/var/log/mysqld3306.log
pid-file=/var/run/mysqld3306/mysqld.pid
数据库二配置:
# vi /usr/local/mysql3307/etc/my.cnf
-------------------------------------------------------
[mysqld]
datadir=/usr/local/mysql3307/data
socket=/tmp/mysql3307.sock
user=mysql
port=3307
pid-file=/var/lib/mysqld3307/mysql.pid
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
max_connections= 16384
skip-name-resolve
skip-locking
key_buffer = 256M
max_allowed_packet = 32M
table_cache = 3072
thread_cache_size = 256
sort_buffer_size = 16M
read_buffer_size = 4M
read_rnd_buffer_size = 16M
net_buffer_length = 256M
thread_stack = 8M
query_cache_size = 128M
query_cache_limit = 2M
wait_timeout=7200
interactive_timeout=7200
#log
log-error=/usr/local/mysql3307/log/error.log
log=/usr/local/mysql3307/log/mysql.log
long_query_time=2
log-slow-queries= /usr/local/mysql3307/log/slowquery.log
log-bin= /usr/local/mysql3307/log/bin.log
expire_logs_days = 15
sync_binlog = 1
max_binlog_cache_size = 4294967295
local-infile=0
default-storage-engine=INNODB
[mysqld_safe]
log-error=/var/log/mysqld3307.log
pid-file=/var/run/mysqld3307/mysqld.pid
-------------------------------------------------------

5.将mysql的库文件路径加入系统的库文件搜索路径中

方法一:直接做软链接
# ln -s /usr/local/mysql3306/lib/mysql /usr/lib/mysql
方法二:利用ldconfig导入系统库
# echo "/usr/local/mysql3306/lib" >> /etc/ld.so.conf.d/mysql.conf
# ldconfig

6.输出mysql的头文件到系统头文件

# ln -s /usr/local/mysql3306/include/mysql /usr/include/mysql

注: 此处只需将一个mysql实例的库文件添加到系统库,无需多次添加

7.进入相应实例的安装路径,初始化各自配置脚本

数据库一配置:
# cd /usr/local/mysql3306
# scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql3306/data
数据库二配置:
# cd /usr/local/mysql3307
# scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql3307/data

8.复制mysql启动脚本到系统服务目录,并更改脚本配置

# cp /usr/local/mysql3306/support-files/mysql.server /etc/init.d/mysqld3306
# cp /usr/local/mysql3307/support-files/mysql.server /etc/init.d/mysqld3307
数据库一配置:
# vi /etc/init.d/mysqld3006
basedir=/usr/local/mysql3306
datadir=/usr/local/mysql3306/data
conf=/usr/local/mysql3306/etc/my.cnf
$bindir/mysqld_safe --defaults-file=$conf --datadir=$datadir --pid-file=$server_pid_file $other_args >/dev/null 2>&1 &
--------------------------------------------

如下图红色标注的为添加的参数:


数据库二配置:
# vi /etc/init.d/mysqld3007
basedir=/usr/local/mysql3307
datadir=/usr/local/mysql3307/data
conf=/usr/local/mysql3307/etc/my.cnf
$bindir/mysqld_safe --defaults-file=$conf --datadir=$datadir --pid-file=$server_pid_file $other_args >/dev/null 2>&1 &
--------------------------------------------

如下图红色标注的为添加的参数:


9.系统启动项相关配置

数据库一配置:
# chkconfig --add mysqld3306 #添加开机启动服务
# chkconfig --level 35 mysqld3306 on #设置mysql启动
数据库二配置:
# chkconfig --add mysqld3307 
# chkconfig --level 35 mysqld3307 on

10.启动mysql

数据库一启动:
# service mysqld3306 start
数据库二启动:
# service mysqld3307 start

11 添加mysql命令集到系统全局变量

注:如果系统之前未安装mysql客户端,可以将编译好的mysql命令集导入系统全局变量
以后就可以直接使用mysql命令集,而不需要使用绝对路径访问.

# echo "PATH=$PATH:/usr/local/mysql3306/bin;export PATH" >> /etc/profile
# source /etc/profile

12. 设置初始账户,并登陆后台:

数据库一:
# /usr/local/mysql3306/bin/mysqladmin -u root password 123456 #设置超级管理员密码
# /usr/local/mysql3306/bin/mysql -P3306 -S/tmp/mysql3306.sock -uroot -p123456 #连接数据库
数据库二:
# /usr/local/mysql3307/bin/mysqladmin -u root password 123456 #设置超级管理员密码
# /usr/local/mysql3307/bin/mysql -P3307 -S/tmp/mysql3307.sock -uroot -p123456 #连接数据库

注: 因为加了mysql环境变量,以后系统后台可以直接使用mysql命令登录,这里使用绝对路径是为了规范操作

# mysql -P3307 -S/tmp/mysql3307.sock -uroot -p123456

13.端口测试:

#lsof -i:3306
#lsof -i:3307

OK,大功告成!

四、问题

1、-bash: ./scripts/mysql_install_db: No such file or directory

安装过程中执行

scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql3306/data

报错信息为:

-bash: ./scripts/mysql_install_db: No such file or directory

说明在mysql的安装目录下没有scripts目录,此时,可以将解压的源码中的script目录拷贝到安装目录下,重新执行命令。

2、cp: cannot stat `/usr/local/mysql3307/support-files/mysql.server': No such file or directory

安装过程中执行命令

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld3307

报错信息为:

cp: cannot stat `/usr/local/mysql3307/support-files/mysql.server': No such file or directory

将解压的源码中的support-files目录拷贝到安装目录下,重新执行命令

3、env: /etc/init.d/mysqld3307: Permission denied

启动数据库的时候执行命令

service mysqld3307 start

报错信息为:

env: /etc/init.d/mysqld3307: Permission denied

此时要为相应的文件授权,执行命令

chmod a+wrx /etc/init.d/mysqld3307

重新执行启动MySQL数据库服务的命令service mysqld3307 start

下载本文
显示全文
专题