MySQL之——Centos中安装多个mysql数据库的配置实例

Linux操作系统:centOS6.5 64bit(安装了系统默认开发包)

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

系统目录:/usr/local/mysql3307

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

[plain]   view plain  copy
  1. <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

[plain]   view plain  copy
  1. # service iptables stop  
  2. # setenforce 0  
  3. # vi /etc/sysconfig/selinux  
  4. ---------------  
  5. SELINUX=disabled  

三.安装mysql数据库实例

1.下载编译包
[plain]   view plain  copy
  1. # su -  
  2. # mkdir ~/src  
  3. # cd src  
  4. # wget http://mirrors.sohu.com/mysql/MySQL-5.1/mysql-5.1.73.tar.gz  
  5. # wget http://down1.chinaunix.net/distfiles/mysql-5.0.56.tar.gz  
2.安装前的初始配置工作:
1).创建一个Mysql用户
[plain]   view plain  copy
  1. # useradd mysql    
2).新建mysql下data和log子目录
[plain]   view plain  copy
  1. # mkdir -p /usr/local/mysql{3306,3307}/data            
  2. # mkdir -p /usr/local/mysql{3306,3307}/log  
3).修改目录的所属者以及所属组权限 
[plain]   view plain  copy
  1. # chown -R mysql:mysql /usr/local/mysql{3306,3307}/data/  
  2. # chown -R mysql:mysql /usr/local/mysql{3306,3307}/log/  
  3. # chmod 750 /usr/local/mysql{3306,3307}/data        
  4. # chmod 750 /usr/local/mysql{3306,3307}/log    
4).创建mysql相关目录并配置权限
[plain]   view plain  copy
  1. # mkdir -p /usr/local/mysql{3306,3307}/etc  
  2. # chown -R mysql.mysql /usr/local/mysql{3306,3307}/etc  
  3. # mkdir -p /var/run/mysqld{3306,3307}  
  4. # chown -R mysql.mysql /var/run/mysqld{3306,3307}  
  5. # mkdir -p /var/lib/mysqld{3306,3307}  
  6. # chown -R mysql.mysql /var/lib/mysqld{3306,3307}  
  7. # cp /etc/my.cnf /usr/local/mysql{3306,3307}/etc  
3.解包编译安装
编译数据库一:
[plain]   view plain  copy
  1. # cd ~/src  
  2. # tar -zxvf mysql-5.0.56.tar.gz      
  3. # cd mysql-5.0.56    
  4. ./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  
  5. # make  
  6. # make install  
编译数据库二:
[plain]   view plain  copy
  1. # cd ~/src  
  2. # tar -zxvf mysql-5.1.71.tar.gz      
  3. # cd mysql-5.1.71  
  4. ./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  
  5. # make  
  6. # make install  
4.编写mysql配置项:
数据库一配置:
[plain]   view plain  copy
  1. # vi /usr/local/mysql3306/etc/my.cnf  
  2. -------------------------------------------------------  
  3. [mysqld]  
  4. datadir=/usr/local/mysql3306/data  
  5. socket=/tmp/mysql3306.sock  
  6. user=mysql  
  7. port=3306  
  8. pid-file=/var/lib/mysqld3306/mysql.pid  
  9. # Disabling symbolic-links is recommended to prevent assorted security risks  
  10. symbolic-links=0  
  11. max_connections= 16384  
  12. skip-name-resolve  
  13. skip-locking  
  14. key_buffer = 256M  
  15. max_allowed_packet = 32M  
  16. table_cache = 3072  
  17. thread_cache_size = 256  
  18. sort_buffer_size = 16M  
  19. read_buffer_size = 4M  
  20. read_rnd_buffer_size = 16M  
  21. net_buffer_length = 256M  
  22. thread_stack = 8M  
  23. query_cache_size = 128M  
  24. query_cache_limit = 2M  
  25. wait_timeout=7200  
  26. interactive_timeout=7200  
  27. #log  
  28. log-error=/usr/local/mysql3306/log/error.log  
  29. log=/usr/local/mysql3306/log/mysql.log  
  30. long_query_time=2  
  31. log-slow-queries= /usr/local/mysql3306/log/slowquery.log  
  32. log-bin= /usr/local/mysql3306/log/bin.log  
  33. expire_logs_days = 15  
  34. sync_binlog = 1  
  35. max_binlog_cache_size = 4294967295  
  36. local-infile=0  
  37. default-storage-engine=INNODB   
  38. [mysqld_safe]  
  39. log-error=/var/log/mysqld3306.log  
  40. pid-file=/var/run/mysqld3306/mysqld.pid  
数据库二配置:
[plain]   view plain  copy
  1. # vi /usr/local/mysql3307/etc/my.cnf  
  2. -------------------------------------------------------  
  3. [mysqld]  
  4. datadir=/usr/local/mysql3307/data  
  5. socket=/tmp/mysql3307.sock  
  6. user=mysql  
  7. port=3307  
  8. pid-file=/var/lib/mysqld3307/mysql.pid  
  9. # Disabling symbolic-links is recommended to prevent assorted security risks  
  10. symbolic-links=0  
  11. max_connections= 16384  
  12. skip-name-resolve  
  13. skip-locking  
  14. key_buffer = 256M  
  15. max_allowed_packet = 32M  
  16. table_cache = 3072  
  17. thread_cache_size = 256  
  18. sort_buffer_size = 16M  
  19. read_buffer_size = 4M  
  20. read_rnd_buffer_size = 16M  
  21. net_buffer_length = 256M  
  22. thread_stack = 8M  
  23. query_cache_size = 128M  
  24. query_cache_limit = 2M  
  25. wait_timeout=7200  
  26. interactive_timeout=7200  
  27. #log  
  28. log-error=/usr/local/mysql3307/log/error.log  
  29. log=/usr/local/mysql3307/log/mysql.log  
  30. long_query_time=2  
  31. log-slow-queries= /usr/local/mysql3307/log/slowquery.log  
  32. log-bin= /usr/local/mysql3307/log/bin.log  
  33. expire_logs_days = 15  
  34. sync_binlog = 1  
  35. max_binlog_cache_size = 4294967295  
  36. local-infile=0  
  37. default-storage-engine=INNODB  
  38. [mysqld_safe]  
  39. log-error=/var/log/mysqld3307.log  
  40. pid-file=/var/run/mysqld3307/mysqld.pid  
  41. -------------------------------------------------------  
5.将mysql的库文件路径加入系统的库文件搜索路径中
方法一:直接做软链接
[plain]   view plain  copy
  1. # ln -s /usr/local/mysql3306/lib/mysql /usr/lib/mysql  
方法二:利用ldconfig导入系统库
[plain]   view plain  copy
  1. # echo "/usr/local/mysql3306/lib" >> /etc/ld.so.conf.d/mysql.conf  
  2. # ldconfig  
6.输出mysql的头文件到系统头文件
[plain]   view plain  copy
  1. # ln -s /usr/local/mysql3306/include/mysql /usr/include/mysql  
注: 此处只需将一个mysql实例的库文件添加到系统库,无需多次添加
7.进入相应实例的安装路径,初始化各自配置脚本
数据库一配置:
[plain]   view plain  copy
  1. # cd /usr/local/mysql3306  
  2. # scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql3306/data  
数据库二配置:
[plain]   view plain  copy
  1. # cd /usr/local/mysql3307  
  2. # scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql3307/data  
8.复制mysql启动脚本到系统服务目录,并更改脚本配置
[plain]   view plain  copy
  1. # cp /usr/local/mysql3306/support-files/mysql.server /etc/init.d/mysqld3306  
  2. # cp /usr/local/mysql3307/support-files/mysql.server /etc/init.d/mysqld3307  
数据库一配置:
[plain]   view plain  copy
  1. # vi /etc/init.d/mysqld3006  
[plain]   view plain  copy
  1. basedir=/usr/local/mysql3306  
  2. datadir=/usr/local/mysql3306/data  
  3. conf=/usr/local/mysql3306/etc/my.cnf  
  4. $bindir/mysqld_safe --defaults-file=$conf --datadir=$datadir --pid-file=$server_pid_file $other_args >/dev/null 2>&1 &  
  5. --------------------------------------------  

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


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

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


9.系统启动项相关配置
数据库一配置:
[plain]   view plain  copy
  1. # chkconfig --add mysqld3306  #添加开机启动服务  
  2. # chkconfig --level 35 mysqld3306 on  #设置mysql启动  
数据库二配置:
[plain]   view plain  copy
  1. # chkconfig --add mysqld3307    
  2. # chkconfig --level 35 mysqld3307 on  
10.启动mysql
数据库一启动:
[plain]   view plain  copy
  1. # service mysqld3306 start    
数据库二启动:
[plain]   view plain  copy
  1. # service mysqld3307 start    
11 添加mysql命令集到系统全局变量

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

[plain]   view plain  copy
  1. # echo "PATH=$PATH:/usr/local/mysql3306/bin;export PATH" >> /etc/profile  
  2. # source /etc/profile  
12. 设置初始账户,并登陆后台:
数据库一:
[plain]   view plain  copy
  1. # /usr/local/mysql3306/bin/mysqladmin -u root password 123456   #设置超级管理员密码  
  2. # /usr/local/mysql3306/bin/mysql -P3306 -S/tmp/mysql3306.sock -uroot -p123456 #连接数据库  
数据库二:
[plain]   view plain  copy
  1. # /usr/local/mysql3307/bin/mysqladmin -u root password 123456   #设置超级管理员密码  
  2. # /usr/local/mysql3307/bin/mysql -P3307 -S/tmp/mysql3307.sock -uroot -p123456 #连接数据库  
注: 因为加了mysql环境变量,以后系统后台可以直接使用mysql命令登录,这里使用绝对路径是为了规范操作
[plain]   view plain  copy
  1. # mysql -P3307 -S/tmp/mysql3307.sock -uroot -p123456  
13.端口测试:
[plain]   view plain  copy
  1. #lsof -i:3306  
  2. #lsof -i:3307  
OK,大功告成!

四、问题

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

安装过程中执行

[plain]   view plain  copy
  1. scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql3306/data  
报错信息为:
[plain]   view plain  copy
  1. -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

安装过程中执行命令

[plain]   view plain  copy
  1. cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld3307  
报错信息为:
[plain]   view plain  copy
  1. 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

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

[plain]   view plain  copy
  1. service mysqld3307 start  
报错信息为:
[plain]   view plain  copy
  1. env: /etc/init.d/mysqld3307: Permission denied  
此时要为相应的文件授权,执行命令
[plain]   view plain  copy
  1. chmod a+wrx /etc/init.d/mysqld3307  

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


原文:

http://blog.csdn.net/l1028386804/article/details/48368937
其他:
http://www.linuxidc.com/Linux/2014-11/108948.htm

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值