Ru-Board.club
← Вернуться в раздел «В помощь системному администратору»

» mySQL не собирается: проблемы с установкой mySQL под *nix

Автор: Infection
Дата сообщения: 31.07.2003 19:02
Чет не хотит собираться...

конфигурил вот так вот:

./configure --prefix=/opt/mysql \
--exec-prefix=/opt/mysql \
--localstatedir=/opt/mysql/data \
--with-mysqld-user=mysql \
--with-libwrap \
--host=localhost \
--with-berkeley-db \
--disable-large-files \
--without-debug \
--with-charset=cp1251 \
--with-extra-charsets=koi8_ru,latin1

ошибка вот такая вот:

libmysql.c: In function `mysql_real_connect':
libmysql.c:1782: warning: passing arg 5 of `gethostbyname_r' from incompatible pointer type
libmysql.c:1782: error: too few arguments to function `gethostbyname_r'
libmysql.c:1782: warning: assignment makes pointer from integer without a cast
make[2]: *** [libmysql.lo] Ошибка 1
make[2]: Leaving directory `/usr/src/SQL_Databases/mysql-4.0.14/libmysql'
make[1]: *** [all-recursive] Ошибка 1
make[1]: Leaving directory `/usr/src/SQL_Databases/mysql-4.0.14'
make: *** [all] Ошибка 2


уже и бинды собрал и понял, и libbind-dev и bind-dev, думал может их не хватает... а похрен.. не собирается
Автор: f_serg
Дата сообщения: 01.08.2003 05:13
Infection

Цитата:
libmysql.c:1782: error: too few arguments to function `gethostbyname_r'

Посмотри в libmysql.c в строке 1782 вызов gethostbyname_r, почитай man gethostbyname_r и приведи вызов в соответствие с мануалом.
Автор: Infection
Дата сообщения: 01.08.2003 08:16
блин... как насоветую - так насоветуют!!

надо исправить config.h след образом

/* Solaris define gethostbyname_r with 5 arguments. glibc2 defines
this with 6 arguments */
/* #undef HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE */
#define HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE 1
Автор: f_serg
Дата сообщения: 01.08.2003 08:46
Infection

Цитата:
надо исправить config.h след образом

Ну, либо так. Хотя, configure должен был сам определить, какой вызов делать.
Автор: Infection
Дата сообщения: 01.08.2003 15:56
о моя мама... теперь ему еще и компилятор g++ понадобился... нахрен спрашивается для mySQL g++?

мда уж.. вот так mySQL!!!
Автор: proed
Дата сообщения: 25.11.2003 22:26
при установке мускуля под RedHat 9 возникли следующие грабли:
сначала при выполнении ./configure, ругался на отсутствие библиотеки termcap, решилась установкой libtermcap-devel-2.0.8-35.i386.rpm...
далее при попытке компиляции выдал следующую ошибку:

Цитата:
libmysql.c: In function `mysql_real_connect':
libmysql.c:1348: warning: passing arg 5 of `gethostbyname_r' from incompatible p
ointer type
libmysql.c:1348: too few arguments to function `gethostbyname_r'
libmysql.c:1348: warning: assignment makes pointer from integer without a cast
make[2]: *** [libmysql.lo] Ошибка 1
make[2]: Выход из каталога /usr/local/utm/software/mysql-3.23.55/libmysql'
make[1]: *** [all-recursive] Ошибка 1
make[1]: Выход из каталога /usr/local/utm/software/mysql-3.23.55'
make: *** [all] Ошибка 2

на mysql.com нашел следующий коментарий:


Цитата:
If you get a compilation error on Linux (e.g. SuSE Linux 8.1 or Red Hat Linux 7.3) similar to the following one:
libmysql.c:1329: warning: passing arg 5 of `gethostbyname_r' from incompatible pointer type
libmysql.c:1329: too few arguments to function `gethostbyname_r'
libmysql.c:1329: warning: assignment makes pointer from integer without a cast
make[2]: *** [libmysql.lo] Error 1
By default, the configure script attempts to determine the correct number of arguments by using g++ the GNU C++ compiler. This test yields wrong results, if g++ is not installed. There are two ways to work around this problem:
Make sure that the GNU C++ g++ is installed. On some Linux distributions, the required package is called gpp, on others it is named gcc-c++.
Use gcc as your C++ compiler by setting the CXX environment variable to gcc:
export CXX="gcc"
Please note that you need to run configure again afterwards.

но выполнение команды export CXX="gcc" ни к чему не привело,
проблема решилась редактированием файла
config.h.in

нужно заменить строчку:
#undef HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE

на:
#define HAVE_GETHOSTBYNAME_R_GLIBC2_STYLE


Добавлено
теперь вот такая трабла вылезла:

Цитата:
gcc: installation problem, cannot exec `cc1plus': No such file or directory

у кого-нибудь есть мысли по этому поводу ?


Добавлено
похоже, что я здесь "тихо сам с собою, я веду беседу"

проблема решилась установкой следующего компонента:
gcc-c++-3.2.2-5.i386.rpm
Автор: Infection
Дата сообщения: 02.12.2003 12:06

Цитата:
оже, что я здесь "тихо сам с собою, я веду беседу"


я же писал в предыдущем посте. что g++ нужен
Автор: proed
Дата сообщения: 04.12.2003 02:35
Infection

Цитата:
я же писал в предыдущем посте. что g++ нужен

извиняйте, я не думал, что к компилятору придется доставлять все компоненты и библиотеки...
другие всего этого не требуют...
потом еще проблемы с чисткой сервера от уже ненужного мусора...
Автор: PHP
Дата сообщения: 25.09.2004 22:59
Устаналиваю под Debian Linux когда начинаю распаковывать ко всем файлам и директориям выдается ошибка: File or directory not found - типа того что в архиве файлы не найдены, может я как так не так tar.gz файл распаковываю, подскажите! Срочно!

У пробовал устанавливать MySQL в Webmin, но почему то в панели управления MySQL НЕТ никаких значков управление, почему-то пусто...
Автор: Demetrio
Дата сообщения: 25.09.2004 23:04
PHP
apt-get install mysql

такой вариант тебе не подходит?
Автор: PHP
Дата сообщения: 26.09.2004 15:28
ssh>apt-get install mysql
ssh>Reading Package Lists... Done
Building Dependency Tree... Done
Package mysql has no available version, but exists in the database.
This typically means that the package was mentioned in a dependency and
never uploaded, has been obsoleted or is not available with the contents
of sources.list
Автор: Demetrio
Дата сообщения: 26.09.2004 18:33
PHP
Посмотри что у тебя в /etc/apt/sources.list

сделай apt-get update

потом apt-cache search mysql | less

увидишь всё что есть в наличии
Автор: PHP
Дата сообщения: 27.09.2004 21:30
Все что установлено связаное с MySQL:

dpsyco-mysql A-E Automate administration of access to mysql.
libapache-mod-auth-mysql K-O Apache module for MySQL authentication
libdbd-mysql-perl K-O mySQL database interface for Perl
libmysqlclient10 K-O mysql database client library
libmysqlclient10-dev K-O mysql database development files
mysql-client K-O mysql database client binaries
mysql-common K-O mysql database common files (e.g. /etc/mysql/my.cnf)
mysql-server K-O mysql database server binaries
php4-mysql

И при попытке соединения выдается следующая ошибка:

Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)


Автор: ooptimum
Дата сообщения: 28.09.2004 07:11
PHP

Цитата:
Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'

Типичная ошибка, которая выдается в случае если мускул вообще не запущен. Копай в этом направлении.
Автор: PHP
Дата сообщения: 29.09.2004 05:49
Вошел наконец через SSH в MySQLAdmin, но при любой попытке выполнить какую-нибудь команду выдается эта ошибка. Чето с сокетом я так подозреваю...
Автор: Cheery
Дата сообщения: 29.09.2004 05:51
PHP

Цитата:
Чето с сокетом я так подозреваю...

да не с сокетом.. не запущен сервер mysqld.. ну посмотри через ps
Автор: PHP
Дата сообщения: 30.09.2004 02:34
Почти разобрался, последняя деталь, остально узнать как исправить вот эту ошибку после попытки запуска mysqld:

>040930 0:22:49 mysqld: Table 'mysql.host' doesn't exist
Автор: Cheery
Дата сообщения: 30.09.2004 02:37
PHP

Цитата:
Почти разобрался, последняя деталь, остально узнать как исправить вот эту ошибку после попытки запуска mysqld:

http://dev.mysql.com/doc/mysql/ru/Default_privileges.html
mysql_install_db запускал? нет..
Автор: PHP
Дата сообщения: 30.09.2004 06:33
Запустил и вот такая байда:

Installing all prepared tables
ERROR: 3 Error writing file './mysql/db.frm' (Errcode: 28)
ERROR: 3 Error writing file './mysql/db.frm' (Errcode: 28)
ERROR: 3 Error writing file './mysql/db.frm' (Errcode: 28)
ERROR: 3 Error writing file './mysql/db.frm' (Errcode: 28)
ERROR: 3 Error writing file './mysql/db.frm' (Errcode: 28)
ERROR: 3 Error writing file './mysql/db.frm' (Errcode: 28)
ERROR: 3 Error writing file './mysql/db.frm' (Errcode: 28)
ERROR: 3 Error writing file './mysql/db.frm' (Errcode: 28)
ERROR: 3 Error writing file './mysql/db.frm' (Errcode: 28)
ERROR: 3 Error writing file './mysql/db.frm' (Errcode: 28)
ERROR: 3 Error writing file './mysql/db.frm' (Errcode: 28)
ERROR: 3 Error writing file './mysql/db.frm' (Errcode: 28)
ERROR: 3 Error writing file './mysql/db.frm' (Errcode: 28)
ERROR: 3 Error writing file './mysql/db.frm' (Errcode: 28)
040930 4:15:41 /usr/sbin/mysqld: Shutdown Complete

Привилегии как там выставил где у меня мускул лежит /usr/bin

shell> chown -R root /usr/bin
shell> chown -R mysql /usr/bin
shell> chgrp -R mysql /usr/bin

А тут мускл конфиг /var/lib/mysql/my.cnf


Автор: Cheery
Дата сообщения: 30.09.2004 06:40
PHP
какая версия mysql?
http://bugs.mysql.com/bug.php?id=1279
http://bugs.mysql.com/search.php?search_for=db.frm+&status=All&severity=&limit=10&order_by=&cmd=display&direction=ASC&bug_type=Any&assign=&php_os=&phpver=&bug_age=0
Автор: PHP
Дата сообщения: 30.09.2004 06:46
3.23.49, for pc-linux-gnu on i686
Автор: Infection
Дата сообщения: 01.10.2004 06:31

Цитата:
shell> chown -R root /usr/bin
shell> chown -R mysql /usr/bin
shell> chgrp -R mysql /usr/bin


не понял.......

а какого хрена надо чоунить исполняемые файлы под майскул?
завтра кто-нить кто-нить сломает твой майкуль и будет тебе "здрасти"


во первых, какой префикс был при конфигуринге?
то бишь уда твой mysql встал? отдельно все инклуды, либы, бинарники и вариблы? или же по системе разбросаны? ставил с пакета или сам компилил?

во первых привелегии надо ставить только там, где сама база будет лежить, у меня к примеру --prefix=/opt/mysql
а база валяется в /var/lib/mysql - вот ее и надо чоунить и чгрупить
и потом, чтобы засунуть все исполняемые файлы от mysql (если сам компилил собщим префиксом), то идем в папку /usr/bin

и даем команду

find /opt/mysql/bin -type -f -exec ln -s {} \;

и все твои бинарники от Mysql валяются в качестве символических ссылок
а еще есть хорошая прграммулина

www:/var/lib/mysql# perror 28
Error code 28: No space left on device


так что думаем сперва, а потом делаем

Добавлено
прочитал, что ставил ты с дебиана...
чтобы поставить Mysql в Debian надо ставить server, client & common. Все остальное что нужно - само стянется.

по умолчанию все должно работать. На сколько я помню, дебиан и хранить свои базы в /var/lib/mysql

у тебя папка /var отдельным маунт поинтом что ли стоит? Если да, то смотри в сторону логов, возможно диск переполнился или что-то в этом роде... вобщем места тебе не хватает
или дай команду

df
Автор: PHP
Дата сообщения: 02.10.2004 02:25
Урра! Получилось. Мани сенкс за все. Короче я все нафиг удалил, и переустановил по такой системе:



Цитата:
apt-get install mysql-server mysql-client
<- No
<- Yes

In /etc/mysql/my.cnf comment out the following line:

skip-networking

It should now look similar to this:

# You can copy this to one of:
# /etc/mysql/my.cnf to set global options,
# mysql-data-dir/my.cnf to set server-specific options (in this
# installation this directory is /var/lib/mysql) or
# ~/.my.cnf to set user-specific options.
#
# One can use all long options that the program supports.
# Run the program with --help to get a list of available options

# This will be passed to all mysql clients
[client]
#password = my_password
port = 3306
socket = /var/run/mysqld/mysqld.sock

# Here is entries for some specific programs
# The following values assume you have at least 32M ram

[safe_mysqld]
err-log = /var/log/mysql/mysql.err

[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
#
# You can also put it into /var/log/mysql/mysql.log but I leave it in /var/log
# for backward compatibility. Both location gets rotated by the cronjob.
#log = /var/log/mysql/mysql.log
log = /var/log/mysql.log
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
language = /usr/share/mysql/english
skip-locking
#
# The skip-networkin option will no longer be set via debconf menu.
# You have to manually change it if you want networking i.e. the server
# listening on port 3306. The default is "disable" - for security reasons.
#skip-networking
set-variable = key_buffer=16M
set-variable = max_allowed_packet=1M
set-variable = thread_stack=128K
#
# Here you can see queries with especially long duration
#log-slow-queries = /var/log/mysql/mysql-slow.log
#
# The following can be used as easy to replay backup logs or for replication
#server-id = 1
#log-bin = /var/log/mysql/mysql-bin.log
#binlog-do-db = include_database_name
#binlog-ignore-db = include_database_name
#
# Read the manual if you want to enable InnoDB!
skip-innodb

[mysqldump]
quick
set-variable = max_allowed_packet=1M

[mysql]
#no-auto-rehash # faster start of mysql but no tab completition

[isamchk]
set-variable = key_buffer=16M



Restart MySQL:

/etc/init.d/mysql restart


И все пашет.


Добавлено
safe_mysqld запущен.

mysqld ругает что порт занят.

mysql выдает ошибку с сокетом.

---
>/etc/init.d# ./mysql force-reload
>Reloading MySQL database server: mysqld/usr/bin/mysqladmin: connect to server >at 'localhost' failed
>error: 'Can't connect to local MySQL server through socket '/var/run/mysqld/mysql.sock' (2)'
>Check that mysqld is running and that the socket: '/var/run/mysqld/mysql.sock' exists!
---


Добавлено
>/etc/init.d# safe_mysqld --user=mysql
Starting mysqld daemon with databases from /var/lib/mysql
041002 01:46:48 mysqld ended



Добавлено
>mysqld
>041002 2:25:19 Can't start server: Bind on TCP/IP port: Address already in use
>041002 2:25:19 Do you already have another mysqld server running on port: 3306 ?
>041002 2:25:19 Aborting
>041002 2:25:19 mysqld: Shutdown Complete

Проверил никаких процессов связанных с mysql не запущено. Проверил командой telnet все доступно. Пробовал менять порт.
Автор: PHP
Дата сообщения: 02.10.2004 09:17
Эх. Все уж, случайно сделал reboot системы, и она не запустилась все село включая SSH, IP не отвечает, вот так Я так понимаю врубить VDS тебе сможет только админ всей системы? Блин, VDS-то чужая, на заказ выполняю. Вот попал.
Автор: YuroN
Дата сообщения: 01.06.2005 16:57
Аналогичная проблема.. Все делал вточь с указаниями http://www.opennet.ru/base/sys/apache_tune_bsd.txt.html

Добавлено:
и кстати файла my.cnf так и не нашел (
Автор: YuroN
Дата сообщения: 02.06.2005 14:20
Вот копаюсь и немогу не чего сделаь.. Есть такой вопос: можно ли как-то установить другую версию mysql, т.к. установка прошла и поверх установить реально?? или деинсталяцию как-то выполнить можно?.. кстати очень выжно!
Автор: Infection
Дата сообщения: 02.06.2005 15:37
ну а ты расскажи как обгонял, как подрезал
Автор: YuroN
Дата сообщения: 03.06.2005 16:26
Обгонял я судя из статьи http://www.tutorial.ru/index.php/tutorial/13/
о подрезал на том что запустил mysqld
./safe_mysqld --user=root

как давать знать mysql что пользователь может иметь право на использование базы данных, а то мне тут такие записи дают
ERROR 1045: Access denied for user: 'root@localhost' (Using password: NO)
что дальше делать?
Автор: tankistua
Дата сообщения: 03.06.2005 16:28
юзать пароль и читать факи

поставь phpmyadmin
Автор: YuroN
Дата сообщения: 05.06.2005 20:46
Проблему рушил:
# ./safe_mysqld --user=mysql (mysql - пользователь с правами на базу данных)
# chown -R mysql /usr/local/var
----
И к кому что файл my.cnf не там лежал, переместил я его в /usr/local/etc/my.cnf
Скорее всего что не в ту директорию установил mysql
Пока все, буду еще разбираться с пользователями...

Страницы: 12

Предыдущая тема: Настройка proxy под FreeBSD 4.7 (не могу в Инет дать доступ)


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.