linux中源码安装mysql,并启动多个实例

先到http://dev.mysql.com/downloads/mysql/下载一个mysql,我使用的版本是mysql5.1.53。接着解压。

 

安装步骤如下:

 

 

先执行官方的步骤:

 

Shell代码 复制代码  收藏代码
  1. shell> groupadd mysql   
  2. shell> useradd -g mysql mysql   
  3. # Source-build specific instructions   
  4. shell> gunzip < mysql-VERSION.tar.gz | tar -xvf -   
  5. shell> cd mysql-VERSION   
  6. shell> ./configure --prefix=/usr/local/mysql   
  7. shell> make   
  8. shell> make install   
  9. # End of Source-build specific instructions   
  10. shell> cd /usr/local/mysql   
  11. shell> chown -R mysql .   
  12. shell> chgrp -R mysql .   
  13. shell> bin/mysql_install_db --user=mysql   
  14. shell> chown -R root .   
  15. shell> chown -R mysql var   
  16. shell> cp support-files/my-medium.cnf /etc/my.cnf #optional   
  17. shell> bin/mysqld_safe --user=mysql &  
shell> groupadd mysql
shell> useradd -g mysql mysql
# Source-build specific instructions
shell> gunzip < mysql-VERSION.tar.gz | tar -xvf -
shell> cd mysql-VERSION
shell> ./configure --prefix=/usr/local/mysql
shell> make
shell> make install
# End of Source-build specific instructions
shell> cd /usr/local/mysql
shell> chown -R mysql .
shell> chgrp -R mysql .
shell> bin/mysql_install_db --user=mysql
shell> chown -R root .
shell> chown -R mysql var
shell> cp support-files/my-medium.cnf /etc/my.cnf #optional
shell> bin/mysqld_safe --user=mysql &

 


运行多个实例
执行

Shell代码 复制代码  收藏代码
  1. bin/mysqld_multi --example   
bin/mysqld_multi --example 

会自动列出配置文件的模板,如:

 

Shell代码 复制代码  收藏代码
  1. [mysqld_multi]   
  2. mysqld     = /usr/local/mysql/bin/mysqld_safe   
  3. mysqladmin = /usr/local/mysql/bin/mysqladmin   
  4. user       = multi_admin   
  5. password   = my_password   
  6.   
  7. [mysqld2]   
  8. socket     = /tmp/mysql.sock2   
  9. port       = 3307  
  10. pid-file   = /usr/local/mysql/var2/hostname.pid2   
  11. datadir    = /usr/local/mysql/var2   
  12. language   = /usr/local/mysql/share/mysql/english   
  13. user       = unix_user1   
  14.   
  15. [mysqld3]   
  16. ###### mysqld     = /path/to/mysqld_safe   
  17. ###### ledir      = /path/to/mysqld-binary/   
  18. ###### mysqladmin = /path/to/mysqladmin   
  19. socket     = /tmp/mysql.sock3   
  20. port       = 3308  
  21. pid-file   = /usr/local/mysql/var3/hostname.pid3   
  22. datadir    = /usr/local/mysql/var3   
  23. language   = /usr/local/mysql/share/mysql/swedish   
  24. user       = unix_user2   
  25.   
  26. [mysqld4]   
  27. socket     = /tmp/mysql.sock4   
  28. port       = 3309  
  29. pid-file   = /usr/local/mysql/var4/hostname.pid4   
  30. datadir    = /usr/local/mysql/var4   
  31. language   = /usr/local/mysql/share/mysql/estonia   
  32. user       = unix_user3   
  33.   
  34. [mysqld6]   
  35. socket     = /tmp/mysql.sock6   
  36. port       = 3311  
  37. pid-file   = /usr/local/mysql/var6/hostname.pid6   
  38. datadir    = /usr/local/mysql/var6   
  39. language   = /usr/local/mysql/share/mysql/japanese   
  40. user       = unix_user4  
[mysqld_multi]
mysqld     = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
user       = multi_admin
password   = my_password

[mysqld2]
socket     = /tmp/mysql.sock2
port       = 3307
pid-file   = /usr/local/mysql/var2/hostname.pid2
datadir    = /usr/local/mysql/var2
language   = /usr/local/mysql/share/mysql/english
user       = unix_user1

[mysqld3]
###### mysqld     = /path/to/mysqld_safe
###### ledir      = /path/to/mysqld-binary/
###### mysqladmin = /path/to/mysqladmin
socket     = /tmp/mysql.sock3
port       = 3308
pid-file   = /usr/local/mysql/var3/hostname.pid3
datadir    = /usr/local/mysql/var3
language   = /usr/local/mysql/share/mysql/swedish
user       = unix_user2

[mysqld4]
socket     = /tmp/mysql.sock4
port       = 3309
pid-file   = /usr/local/mysql/var4/hostname.pid4
datadir    = /usr/local/mysql/var4
language   = /usr/local/mysql/share/mysql/estonia
user       = unix_user3

[mysqld6]
socket     = /tmp/mysql.sock6
port       = 3311
pid-file   = /usr/local/mysql/var6/hostname.pid6
datadir    = /usr/local/mysql/var6
language   = /usr/local/mysql/share/mysql/japanese
user       = unix_user4

 

注意[mysqld3]中打井号的行,感觉是mysql5.1.53一个bug,生成多余的配置,把它去掉就可以了。

现在我要运行2个mysql实例,修改上面的配置,如:

 

Shell代码 复制代码  收藏代码
  1. [mysqld_multi]   
  2. mysqld     = /usr/local/mysql/bin/mysqld_safe   
  3. mysqladmin = /usr/local/mysql/bin/mysqladmin   
  4. user       = root   
  5. password   = root   
  6.   
  7. [mysqld2]   
  8. socket     = /tmp/mysql.sock2   
  9. port       = 3307  
  10. pid-file   = /usr/local/mysql/var2/hostname.pid2   
  11. datadir    = /usr/local/mysql/var2   ##数据库的数据文件   
  12. language   = /usr/local/mysql/share/mysql/english   
  13. user       = mysql   
  14.   
  15. [mysqld3]   
  16. socket     = /tmp/mysql.sock3   
  17. port       = 3308  
  18. pid-file   = /usr/local/mysql/var3/hostname.pid3   
  19. datadir    = /usr/local/mysql/var3   ##数据库的数据文件   
  20. language   = /usr/local/mysql/share/mysql/english   
  21. user       = mysql  
[mysqld_multi]
mysqld     = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
user       = root
password   = root

[mysqld2]
socket     = /tmp/mysql.sock2
port       = 3307
pid-file   = /usr/local/mysql/var2/hostname.pid2
datadir    = /usr/local/mysql/var2   ##数据库的数据文件
language   = /usr/local/mysql/share/mysql/english
user       = mysql

[mysqld3]
socket     = /tmp/mysql.sock3
port       = 3308
pid-file   = /usr/local/mysql/var3/hostname.pid3
datadir    = /usr/local/mysql/var3   ##数据库的数据文件
language   = /usr/local/mysql/share/mysql/english
user       = mysql
 

 

把这些配置加到/etc/my.cnf配置文件的底部。

初始化数据库

这一步很重要,数据文件没有初始化,就启动不起来数据库实例。

创建数据库的数据目录:

Shell代码 复制代码  收藏代码
  1. sudo mkdir /usr/local/mysql/var2   
  2. sudo mkdir /usr/local/mysql/var3  
sudo mkdir /usr/local/mysql/var2
sudo mkdir /usr/local/mysql/var3

 

修改权限:

Shell代码 复制代码  收藏代码
  1. chown -R mysql /usr/local/mysql/var2   
  2. chown -R mysql /usr/local/mysql/var3  
chown -R mysql /usr/local/mysql/var2
chown -R mysql /usr/local/mysql/var3


创建数据文件:

Shell代码 复制代码  收藏代码
  1. sudo bin/mysql_install_db --user=mysql --datadir=/usr/local/mysql/var2   
  2. sudo bin/mysql_install_db --user=mysql --datadir=/usr/local/mysql/var3  
sudo bin/mysql_install_db --user=mysql --datadir=/usr/local/mysql/var2
sudo bin/mysql_install_db --user=mysql --datadir=/usr/local/mysql/var3


启动2个数据库实例

Shell代码 复制代码  收藏代码
  1. sudo bin/mysqld_multi start 2  
  2. sudo bin/mysqld_multi start 3  
sudo bin/mysqld_multi start 2
sudo bin/mysqld_multi start 3


验证是否启动成功了

Shell代码 复制代码  收藏代码
  1. telnet 127.0.0.1 3307  
  2. telnet 127.0.0.1 3308  
telnet 127.0.0.1 3307
telnet 127.0.0.1 3308


有数据返回,说明新加的两个实例已经运行起来了!

 

最后把两个实例的用户名和密码都设置为root,命令如下:

 

Shell代码 复制代码  收藏代码
  1. mysqladmin -h127.0.0.1 -P3307 -uroot -p password root   
  2. mysqladmin -h127.0.0.1 -P3308 -uroot -p password root  
mysqladmin -h127.0.0.1 -P3307 -uroot -p password root
mysqladmin -h127.0.0.1 -P3308 -uroot -p password root

 

by 毛导

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值