Я хочу установить MySQL на CentOS.
У меня нет учетной записи root на этой машине.
Как я могу установить MySQL на CentOS как пользователь, т.е. не будучи рутом?
УСТАНОВКА MYSQL НА CENTOS БЕЗ УЧЕТНОЙ ЗАПИСИ:
/home/martin/mysql
Создайте файл my.cnf
в вашем домашнем каталоге. Содержимое файла должно быть:
[server]
user=martin
basedir=/home/martin/mysql
datadir=/home/martin/sql_data
socket=/home/martin/socket
port=3666
Перейдите в каталог /home/martin/mysql
и выполните:
./scripts/mysql_install_db --defaults-file=~/my.cnf --user=martin --basedir=/home/martin/mysql --datadir=/home/martin/sql_data --socket=/home/martin/socket
Обратите внимание, что --defaults-file
ДОЛЖЕН быть первым параметром, иначе он не будет работать! Это ошибка MySQL.
Ваш сервер MySQL готов. Запустите его с помощью этой команды:
./bin/mysqld_safe --defaults-file=~/my.cnf &
Подключение к серверу:
mysql -h 127.0.0.1 -P 3666 -u root -p (using tcp)
или же
mysql --socket=/home/martin/socket -u root -p (using unix socket)
Завершение работы сервера:
mysqladmin -h 127.0.0.1 -P 3666 -u root shutdown(using tcp)
или же
mysqladmin --socket=/home/martin/socket -u root shutdown (using unix socket)
Для пакетов RPM (а CentOS - это, конечно, система RPM) вам необходимо быть пользователем root для запуска установщика rpm. Установщик RPM должен записывать в некоторые базы данных, отслеживающие пакеты, и вы должны быть суперпользователем для записи в них. Хорошо, ну, mysql позволяет вам устанавливать из tarball, верно? (http://dev.mysql.com/doc/refman/5.0/en/binary-installation.html). Ну, да, но есть пост-инсталляция, которую вам нужно запустить, для которой вам нужно быть пользователем root.
В RPM могут быть шаги до и после установки, кроме простого выгрузки файлов. это могут быть изменения файлов конфигурации, добавление / удаление пользователей. В общем, для этого вам может потребоваться быть пользователем root. Даже без сценариев вы обычно устанавливаете в каталоги, в которые может установить только root.
В другом комментарии вы упомянули другие пакеты, которые вы установили, и вам не нужно быть пользователем root. Для этих пакетов я уверен, что:
/etc
, нет новых пользователей, таких как MySQL)Вы можете собрать его и запустить из своего домашнего каталога, если у вас есть доступный компилятор, но для установки программного обеспечения на Linux вам потребуется доступ с правами root.
Ответ Мартина сработал для меня. Чтобы ответить на комментарии (я не могу комментировать из-за разрешений здесь):
Чтобы подключиться к серверу, вам нужно либо добавить каталог /home /martin /mysql /bin (в этом примере /home /martin /mysql /bin), либо использовать полный путь для его запуска:
/home/martin/mysql/bin/mysql --socket=/home/martin/socket -u root -p
Другим недостающим элементом была установка пароля root. После выполнения шага bin/mysqld_safe (см. Шаг 5 в ответе Мартина) MySql рассказал мне, как установить пароль root. Вы должны сделать этот шаг, но добавив опцию --socket =/home/martin/socket в командную строку.