Linux作業系統:centOS6.5 64bit(安裝了系統預設開發包)
#資料庫一:
MYSQL版本:mysql-5.0.56
PORT:3306
系統目錄:/usr/local/mysql3306
資料庫二:
MYSQL版本:mysql-5.1.72
PORT:3307
系統目錄:/usr/local/mysql3307
<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*
# service iptables stop # setenforce 0 # vi /etc/sysconfig/selinux --------------- SELINUX=disabled
# su - # mkdir ~/src # cd src # wget http://www.php.cn/ # wget http://www.php.cn/
# useradd mysql
# mkdir -p /usr/local/mysql{3306,3307}/data # mkdir -p /usr/local/mysql{3306,3307}/log
# 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
# 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
# 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
# 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 -------------------------------------------------------
# ln -s /usr/local/mysql3306/lib/mysql /usr/lib/mysql
# echo "/usr/local/mysql3306/lib" >> /etc/ld.so.conf.d/mysql.conf # ldconfig
# ln -s /usr/local/mysql3306/include/mysql /usr/include/mysql
註: 這裡只需將一個mysql實例的庫檔加入系統頭檔,無須多次新增
# 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
# 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 & --------------------------------------------
如下圖紅色標註的為新增的參數:
# chkconfig --add mysqld3306 #添加开机启动服务 # chkconfig --level 35 mysqld3306 on #设置mysql启动
# chkconfig --add mysqld3307 # chkconfig --level 35 mysqld3307 on
# service mysqld3306 start
# service mysqld3307 start
註:如果系統之前未安裝mysql客戶端,可以將編譯好的mysql指令集導入系統全域變數
以後就可以直接使用mysql指令集,而不需要使用絕對路徑存取.
# echo "PATH=$PATH:/usr/local/mysql3306/bin;export PATH" >> /etc/profile # source /etc/profile
# /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
#lsof -i:3306 #lsof -i:3307
OK,大功告成!
安裝過程中執行
scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql3306/data
報錯訊息為:
-bash: ./scripts/mysql_install_db: No such file or directory
說明在mysql的安裝目錄下沒有scripts目錄,此時,可以將解壓縮的源碼中的script目錄拷貝到安裝目錄下,重新執行指令。
#安裝過程中執行指令
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目錄拷貝到安裝目錄下,重新執行指令
#啟動資料庫的時候執行指令
service mysqld3307 start
報錯訊息為:
env: /etc/init.d/mysqld3307: Permission denied
此時要為對應的檔案授權,執行指令
chmod a+wrx /etc/init.d/mysqld3307
重新執行啟動MySQL資料庫服務的指令service mysqld3307 start
以上是詳細介紹MySQL之-Centos安裝多個mysql資料庫的設定實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!