Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
linux:mysql:multiple [2011/12/09 10:54] linko22@gmail.com |
linux:mysql:multiple [2011/12/27 16:13] (текущий) linko22@gmail.com |
||
|---|---|---|---|
| Строка 4: | Строка 4: | ||
| <code cli> | <code cli> | ||
| - | mkdir / | + | mkdir -p / |
| mkdir / | mkdir / | ||
| mkdir / | mkdir / | ||
| Строка 13: | Строка 13: | ||
| </ | </ | ||
| - | 2. Создаем новый минимальный конфигурационный файл для нашего нового сервера **/etc/my.server2.cnf** | + | 2. Создаем новый минимальный конфигурационный файл для нашего нового сервера **/etc/my2.cnf** |
| - | <file bash my.server2.cnf> | + | <file bash my2.cnf> |
| [mysqld] | [mysqld] | ||
| Строка 30: | Строка 30: | ||
| </ | </ | ||
| + | 3. Создаем новый init.d скрипт **/ | ||
| + | |||
| + | <file bash mysql2> | ||
| + | #!/bin/bash | ||
| + | # | ||
| + | # mysqld.server2 This shell script takes care of starting and stopping | ||
| + | # the MySQL subsystem (mysqld). | ||
| + | # | ||
| + | # chkconfig: - 64 36 | ||
| + | # description: | ||
| + | # processname: | ||
| + | # config: / | ||
| + | # pidfile: / | ||
| + | # Source function library. | ||
| + | . / | ||
| + | # Source networking configuration. | ||
| + | . / | ||
| + | prog=" | ||
| + | # extract value of a MySQL option from config files | ||
| + | # Usage: get_mysql_option SECTION VARNAME DEFAULT | ||
| + | # result is returned in $result | ||
| + | # We use my_print_defaults which prints all options from multiple files, | ||
| + | # with the more specific ones later; hence take the last match. | ||
| + | get_mysql_option(){ | ||
| + | result=`/ | ||
| + | if [ -z " | ||
| + | # not found, use default | ||
| + | result=" | ||
| + | fi | ||
| + | } | ||
| + | get_mysql_option mysqld datadir "/ | ||
| + | datadir="/ | ||
| + | get_mysql_option mysqld socket " | ||
| + | socketfile=" | ||
| + | get_mysql_option mysqld_safe log-error "/ | ||
| + | errlogfile="/ | ||
| + | get_mysql_option mysqld_safe pid-file "/ | ||
| + | mypidfile="/ | ||
| + | start(){ | ||
| + | touch " | ||
| + | chown mysql:mysql " | ||
| + | chmod 0640 " | ||
| + | [ -x / | ||
| + | if [ ! -d " | ||
| + | action $" | ||
| + | ret=$? | ||
| + | chown -R mysql:mysql " | ||
| + | if [ $ret -ne 0 ] ; then | ||
| + | return $ret | ||
| + | fi | ||
| + | fi | ||
| + | chown mysql:mysql " | ||
| + | chmod 0755 " | ||
| + | # Pass all the options determined above, to ensure consistent behavior. | ||
| + | # In many cases mysqld_safe would arrive at the same conclusions anyway | ||
| + | # but we need to be sure. | ||
| + | / | ||
| + | --log-error=" | ||
| + | >/ | ||
| + | ret=$? | ||
| + | # Spin for a maximum of N seconds waiting for the server to come up. | ||
| + | # Rather than assuming we know a valid username, accept an " | ||
| + | # denied" | ||
| + | if [ $ret -eq 0 ]; then | ||
| + | STARTTIMEOUT=30 | ||
| + | while [ $STARTTIMEOUT -gt 0 ]; do | ||
| + | RESPONSE=`/ | ||
| + | echo " | ||
| + | sleep 1 | ||
| + | let STARTTIMEOUT=${STARTTIMEOUT}-1 | ||
| + | done | ||
| + | if [ $STARTTIMEOUT -eq 0 ]; then | ||
| + | echo " | ||
| + | action $" | ||
| + | ret=1 | ||
| + | else | ||
| + | action $" | ||
| + | fi | ||
| + | else | ||
| + | action $" | ||
| + | fi | ||
| + | [ $ret -eq 0 ] && touch / | ||
| + | return $ret | ||
| + | } | ||
| + | stop(){ | ||
| + | MYSQLPID=`cat " | ||
| + | if [ -n " | ||
| + | /bin/kill " | ||
| + | ret=$? | ||
| + | if [ $ret -eq 0 ]; then | ||
| + | STOPTIMEOUT=60 | ||
| + | while [ $STOPTIMEOUT -gt 0 ]; do | ||
| + | /bin/kill -0 " | ||
| + | sleep 1 | ||
| + | let STOPTIMEOUT=${STOPTIMEOUT}-1 | ||
| + | done | ||
| + | if [ $STOPTIMEOUT -eq 0 ]; then | ||
| + | echo " | ||
| + | ret=1 | ||
| + | action $" | ||
| + | else | ||
| + | rm -f / | ||
| + | rm -f " | ||
| + | action $" | ||
| + | fi | ||
| + | else | ||
| + | action $" | ||
| + | fi | ||
| + | else | ||
| + | ret=1 | ||
| + | action $" | ||
| + | fi | ||
| + | return $ret | ||
| + | } | ||
| + | restart(){ | ||
| + | stop | ||
| + | start | ||
| + | } | ||
| + | condrestart(){ | ||
| + | [ -e / | ||
| + | } | ||
| + | # See how we were called. | ||
| + | case " | ||
| + | start) | ||
| + | start | ||
| + | ;; | ||
| + | stop) | ||
| + | stop | ||
| + | ;; | ||
| + | status) | ||
| + | status mysqld | ||
| + | ;; | ||
| + | restart) | ||
| + | restart | ||
| + | ;; | ||
| + | condrestart) | ||
| + | condrestart | ||
| + | ;; | ||
| + | *) | ||
| + | echo $" | ||
| + | exit 1 | ||
| + | esac | ||
| + | exit $? | ||
| + | </ | ||
| + | |||
| + | 4. Включаем автозапуск и стартуем | ||
| + | |||
| + | <code cli> | ||
| + | chmod +x / | ||
| + | chkconfig mysqld2 on | ||
| + | service mysqld2 start | ||
| + | </ | ||
| + | |||
| + | 5. Меняем пароль | ||
| + | |||
| + | <code cli> | ||
| + | mysqladmin -P 3307 --protocol=tcp -u root password ' | ||
| + | </ | ||
| + | |||
| + | 6. Подключаемся и смотрим | ||
| + | |||
| + | <code cli> | ||
| + | # mysql -P 3307 --protocol=tcp -uroot -p | ||
| + | Enter password: | ||
| + | Welcome to the MySQL monitor. | ||
| + | Your MySQL connection id is 11 | ||
| + | Server version: 5.5.19-log Source distribution | ||
| + | Type ' | ||
| + | mysql> show databases; | ||
| + | +--------------------+ | ||
| + | | Database | ||
| + | +--------------------+ | ||
| + | | information_schema | | ||
| + | | mysql | | ||
| + | | test | | ||
| + | +--------------------+ | ||
| + | 3 rows in set (0.00 sec) | ||
| + | mysql> | ||
| + | </ | ||
| + | |||
| + | 7. Проверяеем запущеные демоны | ||
| + | |||
| + | <code cli> | ||
| + | |||
| + | # ps -ax | grep mysql | ||
| + | Warning: bad syntax, perhaps a bogus ' | ||
| + | 2996 pts/1 S+ 0:00 grep --color=auto mysql | ||
| + | 15491 ? S 0:00 /bin/sh / | ||
| + | 16096 ? Sl | ||
| + | 19765 ? S 0:00 /bin/sh / | ||
| + | 20343 ? Sl 15:04 / | ||
| + | </ | ||
| + | |||
| + | 8. По мотивам статьи [[http:// | ||