Обсуждение "Первый запуск MySQL"

Автор Graf, 23 марта 2012, 13:14:59

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Graf


FeyFre

А сами по этой инструкции что-то делали?
Цитировать# mkdir /var/lib/mysql/mysql
Зачем такую вложенность делать? /var/lib/mysql итак существует, зачем глуюбже.
Цитировать# mysql_install_db
И где по-вашему проинициализируется база? Правильно, в текущем рабочем каталоге. А какой текущий рабочий каталог? Правильно, скорее всего домашняя папка пользователя которые это всё делает(dtlm ведь нигде комманд по переходу в какой-то там каталог небыло). В данном случае это root. В итоге база у Вас проинициализированна где-нибудь, но только не в var/lib/mysql/mysql.
Цитировать# chown -R mysql.mysql /var/lib/mysql/mysql
А это уже форменное ламмерство.  Тяжело сделать так  mysql_install_db --user=mysql ?
Далее:
Цитировать# /usr/bin/mysqld_safe &
Оно Вас пошлет куда подальше, ибо кто вместо Вас будет указывать новое местоположения БД? Оно будет искать в стандартном месте /var/lib/mysql
ну а все остальныйе действия автоматически будут фейлится по причине отсутствия запущеной базы.

Graf

Цитата: FeyFre от 26 марта 2012, 14:43:37
А сами по этой инструкции что-то делали?
ты не поверишь! :)
абсолютно все и не один раз.

Цитировать
# mkdir /var/lib/mysql/mysql
Зачем такую вложенность делать? /var/lib/mysql итак существует, зачем глуюбже.
# mysql_install_db И где по-вашему проинициализируется база? Правильно, в текущем рабочем каталоге. А какой текущий рабочий каталог? Правильно, скорее всего домашняя папка пользователя которые это всё делает(dtlm ведь нигде комманд по переходу в какой-то там каталог небыло). В данном случае это root. В итоге база у Вас проинициализированна где-нибудь, но только не в var/lib/mysql/mysql.
Спешу с тобой не согласиться :)
Если не создавать каталог  /var/lib/mysql/mysql, то сам mysql_install_db его создаст (проверил только-что на чистой машине находясь в каталоге ./~ ).
Создание каталога было добавлено из-за того, что у кого-то на форуме slackware.ru он не создался, т.е. просто для перестраховки.

Цитировать
# chown -R mysql.mysql /var/lib/mysql/mysql
А это уже форменное ламмерство.  Тяжело сделать так  mysql_install_db --user=mysql ?
Хм..., вот тут готов поправить, но сначала проверю...

Цитировать
Далее:
Цитировать# /usr/bin/mysqld_safe &
Оно Вас пошлет куда подальше, ибо кто вместо Вас будет указывать новое местоположения БД? Оно будет искать в стандартном месте /var/lib/mysql
ну а все остальныйе действия автоматически будут фейлится по причине отсутствия запущеной базы.
неа :)
все работает, еще раз проверил!
SlackWare 12.0, MySQL -5.0.51

Может зависит от версии пакета или слаки?
Напиши, я поправлю.... и спасибо :)

bormant

#3
В качестве дополнения: никогда не лишне знать мнение создателя дистрибутива. Смотрим /etc/rc.d/rc.mysqld:
Цитировать
# To start MySQL automatically at boot, be sure this script is executable:
# chmod 755 /etc/rc.d/rc.mysqld

# Before you can run MySQL, you must have a database.  To install an initial
# database, do this as root:
#
#   mysql_install_db --user=mysql
#
# Note that the mysql user must exist in /etc/passwd, and the created files
# will be owned by this dedicated user.  This is important, or else mysql
# (which runs as user "mysql") will not be able to write to the database
# later (this can be fixed with 'chown -R mysql.mysql /var/lib/mysql').
#
# To increase system security, consider using "mysql_secure_installation"
# as well.  For more information on this tool, please read:
#   man mysql_secure_installation

И ещё необязательный шаг: в составе пакета mysql поставляются примерные файлы конфигурации /etc/my-{huge,large,medium,small}.cnf, ориентированные на то или иное использование:
Цитировать
# Example MySQL config file for very large systems.
#
# This is for a large system with memory of 1G-2G where the system runs mainly MySQL.

# Example MySQL config file for large systems.
#
# This is for a large system with memory = 512M where the system runs mainly MySQL.

# Example MySQL config file for medium systems.
#
# This is for a system with little memory (32M - 64M) where MySQL plays an important part, or systems up to 128M where MySQL is used together with other programs (such as a web server)

# Example MySQL config file for small systems.
#
# This is for a system with little memory (<= 64M) where MySQL is only used from time to time and it's important that the mysqld daemon doesn't use much resources.
Рекомендуется наиболее подходящий из них скопировать в /etc/my.cnf и использовать для настройки поведения сервера MySQL.

bormant

#4
Цитата: FeyFre от 26 марта 2012, 14:43:37
И где по-вашему проинициализируется база? Правильно, в текущем рабочем каталоге.
Ну-ну...
Цитата: /usr/bin/mysql_install_db
...
ldata="/var/lib/mysql"
...
# Configure mysqld command line
mysqld_bootstrap="${MYSQLD_BOOTSTRAP-$mysqld}"
mysqld_install_cmd_line="$mysqld_bootstrap $defaults $mysqld_opt --bootstrap \
  --basedir=$basedir --datadir=$ldata --log-warnings=0 --loose-skip-innodb \
  --loose-skip-ndbcluster $args --max_allowed_packet=8M \
  --default-storage-engine=myisam \
  --net_buffer_length=16K"

# Create the system and help tables by passing them to "mysqld --bootstrap"
s_echo "Installing MySQL system tables..."
if { echo "use mysql;"; cat $create_system_tables $fill_system_tables; } | eval "$filter_cmd_line" | $mysqld_install_cmd_line > /dev/null
...
Продолжите настаивать на текущем каталоге?

ps. Правильный ответ: в каталоге, заданном параметром --datadir=path или --ldata=path, а при их отсутствии -- в каталоге /var/lib/mysql.

Graf

Да, по поводу создания вложенного каталога:
Цитата: /usr/bin/mysql_install_db
# Create database directories mysql & test
for dir in $ldata $ldata/mysql $ldata/test
do
  if test ! -d $dir
  then
    mkdir -p $dir
    chmod 700 $dir
  fi
  if test -w / -a ! -z "$user"
  then
    chown $user $dir
  fi
done

И исправляю :

# chown -R mysql.mysql /var/lib/mysql/mysql


на:
# chown -R mysql.mysql /var/lib/mysql

Cr3w

Вся статья сводится к трем командам:
mysql_install_db --user=mysql
/etc/rc.d/rc.mysql start
mysql_secure_installation

Graf

Цитата: Cr3w от 19 апреля 2012, 14:05:26
Вся статья сводится к трем командам:
mysql_install_db --user=mysql
/etc/rc.d/rc.mysql start
mysql_secure_installation

тогда уж так

# mysql_install_db --user=mysql
# chmod 755 /etc/rc.d/rc.mysqld
# /etc/rc.d/rc.mysql start
# mysql_secure_installation


С учетом того, что читать будут и только-только начинающие работать с мускулом, объяснить элементарные вещи про ошибки во время подключения по сети и входа в мускул, думаю, все же стоит.
А с объяснениями, "что",  "для чего" и "как",  места на страничке займет не меньше :)
Хотя как второй вариант, думаю, вписать можно!

UnixNoob

Что-то я прочитав эту статью и install_mysql_on_slackware в юзерах и паролях запутался.
По-умолчанию я даю права на базу данных пользователю mysql

root@darkstar# mysql_install_db --user=mysql

Но захожу я как пользователь root, c созданным, для пользователя root, паролем (или это root но как-бы для mysql, а не системный?)

root@darkstar# mysqladmin -u root password 'new-password-here'
user@darkstar$ mysql -u root -p

Мне требуется создать БД и дать ей права на выполнение с фреймворка, т.е указать имя пользователя БД и пароль.
Этот пользователь и пароль в целом имеет отношение к командам выше или он создается вот этой командой:

mysql> CREATE DATABASE имя_базы;
mysql> GRANT ALL PRIVILEGES ON имя_базы.* TO имя_пользователя@localhost IDENTIFIED BY 'пароль_пользователя';

Первый раз сталкиваюсь с MySQL.

UnixNoob

Вроде как разобрался, заодно выяснил что в current mariaDB в которой чуть-чуть по-другому, в плане конфигов.

Graf

Вроде, как там достаточно поменять в скрипте и всё работает.
ТУТ обсуждали.
Как только current станет стабильной версией, статью поправлю.

UnixNoob

#11
Цитата: Graf от 17 февраля 2021, 18:25:30
Вроде, как там достаточно поменять в скрипте и всё работает.
Да я посмотрел install_mariadb_on_slackware, сравнил со статьей здесь и разобрался. Когда начал разбираться с  БД, сначала думал postgresql ставить, но потом оказалось что есть mysql  в системе. А в дальнейшем  выяснил что в current mariaDB.