Fiecare vhost va avea propriul lui cluster MySQL. Asta înseamnă că fiecare vhost va avea propriul lui user root, va putea creea orice bază de date în cluster-ul său etc.
În continuare, este necesar să compilăm și instalăm mysql51-server. Acest pachet va instala mysql51-client.
Nu necesită nici un flag special pentru compilare.
În /usr/local/etc/ vom creea un fișier denumit my.cnf ce va conține câte o intrare pentru fiecare vhost, de genul:
[mysqld0]
basedir=/usr/local
datadir=/home/myuser/mysql
log=/home/myuser/logs/mysql.log
pid=/var/run/mysql/myuser.pid
socket=/var/run/mysql/myuser.sock
user=mysql
#port=3307
skip-networking
skip-innodb
[mysqldX], unde X se incrementează de la 0 pentru fiecare vhost. Asigurați-vă că există directoarele /home/myuser/mysql/ și /var/run/mysql/ și că acestea au ca owner user-ul mysql. De asemenea, asigurați-vă că fișierul /home/myuser/logs/mysql.log are ca owner pe mysql, sau că user-ul mysql are drepturi de scriere în acel fișier.
# mkdir -p /home/myuser/mysql# mkdir -p /var/run/mysql# touch /home/myuser/logs/mysql.log# chown mysql:wheel /home/myuser/mysql/# chown mysql:wheel /var/run/mysql/# chown mysql:www /home/myuser/logs/mysql.log# chmod 755 /home/myuser/mysql/# chmod 755 /var/run/mysql/# chmod 644 /home/myuser/logs/mysql.log
Nu uitați ca pentru fiecare vhost, să rulați mysql_install_db, ex:
# mysql_install_db --datadir=/home/myuser/mysql --user=mysql
Mai departe veți avea nevoie de un script care să cheme mysqld_multi, deoarece, acesta este daemon-ul care va porni toate clusterele din /usr/local/etc/my.cnf.
Pentru ca instanța de PHP a fiecărui vhost să știe că socket-ul implicit al mysql-ului său se găsește în /var/run/mysql/
mysql.default_socket = "/var/run/mysql/myuser.sock"Asta va spune instanței PHP a vhost-ului myuser, ca request-urile făcute de către mysql_connect() către "localhost", se vor realiza prin socket-ul /var/run/mysql/myuser.sock.
mysql.default_host = "localhost"

0 comentarii:
Trimiteţi un comentariu