Задавайте вопросы, мы ответим
Вы не зашли.
Привет всем!
Только-только пытаюсь освоить MySQL под Mandriva Linux. Так что вопрос сами понимаете.
Есть пакеты, устанавливаются из Управления программами, все пучком... Вот что делать после установки? Как назначать пользователя, пароль, сокет и т.п. Что прописывать в my.cnf. И нужно ли прописывать что-либо где-либо ещё?
А то установиться то установилось, но после перезагрузки ничего не пашет, то соннекта нет, то сокет не работает, то вообще не запускается....
Неактивен
Если сервер должен использоваться в production, надо поставить пароль на учетную
запись root@localhost.
Чтобы сервер стартовал автоматически, надо проставить на него симлинки в rc.d, насколько
я понимаю, в Mandriva это делается командой типа chkconfig.
По-хорошему, нужно пересмотреть, какие настройки написаны в my.cnf, что конкретно
прописывают в Mandriva - не знаю. В любом случае, это будут какие-то не очень
требовательные параметры.
Неактивен
Если сервер должен использоваться в production, надо поставить пароль на учетную
запись root@localhost.
Это Вы с кем сейчас разговривали?
Что есть production? И что есть учетная запись и как на нее ставить пароль? Как чашку на стол?
Поймите, уважаемый, я дубинушко еще то...
Если знаете, то дайте ссылку на какую-нибудь статейку или мануал (на русском), где бы это разжовывалось...
Дико извиняюсь за непонятливость, - с трудом дается комп. грамота.
Отредактированно loop69 (07.10.2007 17:12:24)
Неактивен
Хорошо, тогда еще раз Постараюсь простыми словами
1. Сервер должен запускаться автоматически при старте операционной системы.
2. Для того, чтобы подключиться к серверу, нужно в терминале написать команду
mysql -uroot
В этой команде первое есть название клиента, который подключается к серверу.
Параметр команды говорит, что нужно подключаться с именем "root". Сервер MySQL
проверяет, можно ли давать доступ к базе данных по комбинации имя-пароль, вот
root - это как раз имя.
Неактивен
Выдает ошибку, что не может соединиться через сокет /var/lib/mysql/mysql.sock зашел в каталог, там действительно нет такого файла... Что делать?
На всякий пожарный выложу текст my.cnf, может быть станет яснее. Там указаны дажк два сокета и ни одного в указанных каталогах нет...
# 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)
#
# The following options will be passed to all MySQL clients
[client]
user = root
#password = your_password
port = 3306
socket = /var/lib/mysql/mysql.sock
# Here follows entries for some specific programs
# The MySQL server
[mysqld]
user = mysql
datadir = /var/lib/mysql
port = 3306
socket = /var/lib/mysql/mysql.sock
pid-file = /var/run/mysqld/mysqld.pid
skip-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K
read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M
# Default to using old password format for compatibility with old and
# shorter password hash.
# Reference: http://dev.mysql.com/doc/mysql/en/Password_hashing.html
old_passwords
# Don't listen on a TCP/IP port at all. This can be a security enhancement,
# if all processes that need to connect to mysqld run on the same host.
# All interaction with mysqld must be made via Unix sockets or named pipes.
# Note that using this option without enabling named pipes on Windows
# (via the "enable-named-pipe" option) will render mysqld useless!
#
skip-networking
# Replication Master Server (default)
# binary logging is required for replication
log-bin=mysql-bin
# required unique id between 1 and 2^32 - 1
# defaults to 1 if master-host is not set
# but will not function as a master if omitted
server-id = 1
# Replication Slave (comment out master section to use this)
#
# To configure this host as a replication slave, you can choose between
# two methods :
#
# 1) Use the CHANGE MASTER TO command (fully described in our manual) -
# the syntax is:
#
# CHANGE MASTER TO MASTER_HOST=<host>, MASTER_PORT=<port>,
# MASTER_USER=<user>, MASTER_PASSWORD=<password> ;
#
# where you replace <host>, <user>, <password> by quoted strings and
# <port> by the master's port number (3306 by default).
#
# Example:
#
# CHANGE MASTER TO MASTER_HOST='125.564.12.1', MASTER_PORT=3306,
# MASTER_USER='joe', MASTER_PASSWORD='secret';
#
# OR
#
# 2) Set the variables below. However, in case you choose this method, then
# start replication for the first time (even unsuccessfully, for example
# if you mistyped the password in master-password and the slave fails to
# connect), the slave will create a master.info file, and any later
# change in this file to the variables' values below will be ignored and
# overridden by the content of the master.info file, unless you shutdown
# the slave server, delete master.info and restart the slaver server.
# For that reason, you may want to leave the lines below untouched
# (commented) and instead use CHANGE MASTER TO (see above)
#
# required unique id between 2 and 2^32 - 1
# (and different from the master)
# defaults to 2 if master-host is set
# but will not function as a slave if omitted
#server-id = 2
#
# The replication master for this slave - required
#master-host = <hostname>
#
# The username the slave will use for authentication when connecting
# to the master - required
#master-user = <username>
#
# The password the slave will authenticate with when connecting to
# the master - required
#master-password = <password>
#
# The port the master is listening on.
# optional - defaults to 3306
#master-port = <port>
#
# binary logging - not required for slaves, but recommended
#log-bin=mysql-bin
# Point the following paths to different dedicated disks
#tmpdir = /tmp/
#log-update = /path-to-dedicated-directory/hostname
# Uncomment the following if you are using BDB tables
#bdb_cache_size = 4M
#bdb_max_lock = 10000
# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = /var/lib/mysql/
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = /var/lib/mysql/
#innodb_log_arch_dir = /var/lib/mysql/
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
#innodb_buffer_pool_size = 16M
#innodb_additional_mem_pool_size = 2M
# Set .._log_file_size to 25 % of buffer pool size
#innodb_log_file_size = 5M
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50
#bind-address=192.168.100.1
## Options for mysqld process:
#ndbcluster # run NDB engine
#ndb-connectstring=192.168.0.10 # location of MGM node
## Options for ndbd process:
#[mysql_cluster]
#ndb-connectstring=192.168.0.10 # location of MGM node
[mysqldump]
quick
max_allowed_packet = 16M
[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates
[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[myisamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
[mysql.server]
user=mysql
basedir=/var/lib
[mysqld_safe]
err-log=/var/log/mysqld/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
# MySQL Instance Manager options section
[manager]
user=mysql
default-mysqld-path=/usr/sbin/mysqld
socket=/var/lib/mysql/mysqlmanager.sock
pid-file=/var/run/mysqld/mysqlmanager.pid
password-file=/etc/mysqlmanager.passwd
run-as-service
monitoring-interval=20
port=2273
#bind-address=192.168.100.1
Отредактированно loop69 (07.10.2007 18:16:55)
Неактивен
А сервер запущен? Что говорит ps ax | grep mysqld ?
Неактивен
Сервер запущен
Попытался запуститься такой командой : mysql -u root --password=1969 --socket=/var/lib/mysql/mysqlmanager.sock
ругаеццо, что пара логин-пароль из бэд. Access denied. Bad username/password pair
Так вот о чем Вы говорили, что нужно поставить пароль на рут. Ну и как его поставить? Команда какая-нибудь или что?
Простая прописка пароля в my.cnf не работает...
ps ax | grep mysqld говорит
3262 ? Ss 0:00 /usr/sbin/mysqlmanager --default-mysqld-path=/usr/sbin/mysqld --user=mysql --run-as-service --pid-file=/var/run/mysqld/mysqlmanager.pid
3266 ? Sl 0:00 /usr/sbin/mysqlmanager --default-mysqld-path=/usr/sbin/mysqld --user=mysql --run-as-service --pid-file=/var/run/mysqld/mysqlmanager.pid
5616 ? S 0:00 kwrite [kdeinit] media:/sda6/etc/rc.d/init.d/mysqld
5768 pts/1 R+ 0:00 grep --color mysqld
Честно говоря, ни хрена не пойму, что он говорит...
Отредактированно loop69 (07.10.2007 18:32:48)
Неактивен
Вот видите, Вы знаете, какой socket использует сервер
Попробуйте с пустым паролем.
Чтобы установить пароль потом, нужно написать "SET PASSWORD FOR root@localhost = PASSWORD('new_password');"
в подключенном клиенте mysql.
Неактивен
Хм. Нет, сервер у Вас не запущен. У Вас запущен только mysqlmanager. В Mandriva
странный взгляд на стандартный запуск MySQL.
Попробуйте запустить сервер простой командой (разумеется, вписав правильный путь к my.cnf):
mysqld_safe --defaults-file=/etc/my.cnf &
Неактивен
Не хочет
Пишет
[root@localhost oleg]# mysqld_safe --defaults-file=/etc/my.cnf &
[1] 6279
[root@localhost oleg]# chown: `mysql': неверный пользователь
Starting mysqld daemon with databases from /var/lib/mysql
STOPPING server from pid file /var/run/mysqld/mysqld.pid
071007 18:54:02 mysqld ended
Неактивен
У Вас нет пользователя mysql, создайте его
useradd mysql
Неактивен
Пользователь есть, потому как при этой команде, выдается сообщение, что такой ползователь существует...
Тут уже до смеха доходит. Вчера вроде заработало, я даже дышать боялсо... Сегодня - сюрприз:
/etc/rc.d/init.d/mysqld start
Выдает [СБОЙ] красными буквами и все, на этом моя работа с MySQL заканчивается и ничинаются сложные сексуальные взаимоотношения со стятьями из сети, где пишется много всего хороршего и умного, да вот только не пишется про такой случай...
Неактивен
А кто владелец каталога и файлов в /var/lib/mysql?
Что говорит "id mysql"?
Неактивен
Так! Спокойно!
Запустился командой
mysqld_safe --defaults-file=/etc/my.cnf &
Подскажите, что теперь сделать, дабы он перестал кочевряжиться? Я даже quit боюсь писать. А ну как опять не запуститься?
Владелец /var - root
Отредактированно loop69 (08.10.2007 18:25:49)
Неактивен
Думаю, лучше всего посмотреть, что у Вас напсиано в конфигурационном файле
/etc/rc.d/init.d/mysql - и сделать так, чтобы он запускал ту строчку, что Вы написали
Неактивен
там нет такого файла. Есть только mysqld и там много чего написано. Боюсь чего не того туда впишу.
Может быть в my.cnf чего подправить. Пароль я там уже прописал и раскомментировал.
id mysql говорит
uid=75(mysql) gid=75(mysql) группы=75(mysql)
Отредактированно loop69 (08.10.2007 20:36:57)
Неактивен
Можете убрать этот страшный жуткий файл из автозагрузки, а сервер запускать
из файла rc.local, просто прописав туда команду запуска сервера.
Не идеальный вариант, конечно, но если не хотите разбираться со скриптами загрузки -
самый простой.
Неактивен
да, это хороший вариант,
chkconfig mysqld off
а потом просто строку с запуском mysqld_safe прописать перед последней строкой в /etc/rc.local
в Мандриве в некоторых вещах перемудрили, так что ручной вариант может быть удачнее
Неактивен
paulus написал:
Можете убрать этот страшный жуткий файл из автозагрузки, а сервер запускать
из файла rc.local, просто прописав туда команду запуска сервера.
Не идеальный вариант, конечно, но если не хотите разбираться со скриптами загрузки -
самый простой.
Как убрать из автозагрузки? С этим Линухом ничего не знаешь точно
И еще при попытке простмотреть базу mysql выдает ошибку
mysql> use mysql;
Database changed
mysql> SHOW FULL FIELDS FROM `user` ;
ERROR 1 (HY000): Can't create/write to file '/root/tmp/#sql_1738_0.MYI' (Errcode: 13)
Дико извиняюсь за беспрестанные вопросы... Большая благодарность Вам за помощь!
Неактивен
Запрос об ошибке выдает
# perror 13
OS error code 13: Permission denied
Разрешение запрещено? Что за ...?
Отредактированно loop69 (08.10.2007 22:05:51)
Неактивен
Брр... может, там SELinux? 13 = нет прав доступа... Судя по каталогу, туда права
пользователь mysql никогда и не получит...
Сделайте chown -R mysql на каталог, в котором лежат базы...
Скажите честно, Вам нужна Мандрива? Поставьте Убунту-сервер. Или Дебиан
Неактивен
Подумаю над Убунту. Мандриву купил, жалко расставаться... Да и обвыкаюсь тихохонько...
Убунту можно ведь скачать?
Поменял владельца /root/tmp на mysql - результат нулевой...
Отредактированно loop69 (08.10.2007 22:19:32)
Неактивен
про то, как отключить автозапуск, см. мой предыдущий пост,
попробуйте раскомментировать в my.cnf
tmpdir = /tmp/
Если все это не работает, то есть выход - скачать MySQL и сайта mysql.com и поставить в /usr/local/, тогда точно будут пути нормальные
Неактивен
какой пакет скачивать?
Linux (x86, glibc-2.2, "standard" is static)
Linux (x86)
Linux (AMD64 / Intel EM64T)
Или какой другой?
Неактивен
Наверное Linux (x86), если у Вас 32-битный линукс, если 64-битный, то AMD64
Неактивен