Архив

Статии по ключова дума: ‘грешка’

Какво е Wardriving и как да го направим (Kismet + Festival + Gpsd + Gpsdrive)

4 февруари, 2010 1 коментар

При Wardriving идеята е да се засекат wireless мрежи и да бъдат картографирани. Според нашият закон или това което четох това не е нелегално(освен ако не се използват тези мрежи с лоши намерения). Все пак аз съм го направил с цел познание и идеята на тази публикация е да споделя знание.

Преди да започнем ще опиша какво ще ни трябва:
Устройства(Gps Reciever с bluetooth, bluetooth на самия лаптоп),
Приложения (gpsdrive,gpsd,bluez-utils,festival,mysql-server,kismet)

След като имаме устройствата ще инсталираме приложенията. Аз лично ползвам Holux 240 slim, но е доста бъгав. От време на време сам решава да се бъгне и да не показа кординатите, а двойчни глупости. За да го върнем в NMEA режим трябва да му извадим батерията с което се връща на първоначални настройки(голямо решение няма що. Има и друго ползвайте друг gps reciever).

Инсталиране на приложенията:
apt-get install gpsdrive gpsd festival mysql-server-5.0 kismet bluez-utils

Сега влючваме нашият GPS Reciever
Изпълняваме "hcitool scan" и виждаме:

Scanning …
00:0B:0D:6D:A1:E8   HOLUX GPSlim240

Ето го и търсеният от нас MAC адрес на Holux Slim 240

Редактираме конф. файлове от bluez-utils в /etc/bluetooth

/etc/bluetooth/hcid.conf

Променяме нашият пин ето тук(в случая е 0000):
passkey "0000"

Сега редактираме /etc/bluetooth/rfcomm.conf

rfcomm0 {
bind no;  # Automatically bind the device at startup
device 00:0B:0D:6D:A1:E8; # Bluetooth address of the device
channel 1; # RFCOMM channel for the connection
comment "My GPS device 00:0B:0D:6D:A1:E8"; # Description of the connection
}

Става ясно, че описваме mac адреса на нашият gps reciever

След това вдигаме нашият интерфейс:
hciconfig hci0 up

Свързваме се към нашето устройство Holux:
hcitool cc 00:0B:0D:6D:A1:E8

Отваряме канал
sdptool add --channel=1 OPUSH

и след това биндваме rfcomm0
rfcomm bind rfcomm0 00:0B:0D:6D:A1:E8

За да проверим, че получаваме данните коректно(данните са в текстов вид NMEA) изпълняваме това:
cat /dev/rfcomm0

Ако се вижда нещо от рода:
$GPGGA,235955.065,0000.0000,N,00000.0000,E,0,00,,0.0,M,0.0,M,,0000*4D
$GPRMC,235955.065,V,0000.0000,N,00000.0000,E,,,150406,,,N*7E
$GPVTG,,T,,M,,N,,K,N*2C
$GPGGA,235956.059,0000.0000,N,00000.0000,E,0,00,,0.0,M,0.0,M,,0000*41
$GPRMC,235956.059,V,0000.0000,N,00000.0000,E,,,150406,,,N*72
$GPVTG,,T,,M,,N,,K,N*2C
$GPGGA,235957.059,0000.0000,N,00000.0000,E,0,00,,0.0,M,0.0,M,,0000*40
$GPGSA,A,1,,,,,,,,,,,,,,,*1E

То нашият GPS Reciever още не си е намерил сателитите и трябва да го изчакате известно време(на открито). След като си ги намери тези нули се превръщат в кординати разбира се.

Сега ще стартираме и gpsd които да обработва данните от rfcomm0

gpsd /dev/rfcomm0

Можем да проверим дали правилно приема данните със следната команда:

gpspipe -r

След като пуснахме основните приложения сега ще пуснем и Kismet. Неговата задача е да следи wireless мрежите и да ги записва във файл с техните кординати.

За да стартираме kismet като сървър трябва да укажем source type, а ако не го направим ще ни излезе следната грешка:

FATAL: Please configure at least one packet source.  Kismet will not function if no packet sources are defined in kismet.conf or on the command line.  Please read the README for more information about configuring Kismet

Това е защото не е зададен capture source type. За целта редактираме /etc/kismet/kismet.conf , ред "source":

source=iwl3945,wlan0,wlan0

Важен е първия аргумент където указваме какъв модул се зарежда за wireless картата, а в този случай е iwl3945

Сега ще накараме Kismet да логва всички wireless мрежи които намери + техните координати. За целта трябва да редактираме /etc/kismet/kismet.conf

waypoints=true
# GPSDrive waypoint file.  This WILL be truncated.
waypointdata=~/.gpsdrive/way.txt

Следващата стъпка е да накараме Kismet освен да логва и да говори.
Сега ще направим един малък тест на festival

echo "Hi from mpetrov.net -- Festival test"|festival --tts

Ако ви изплюе следната грешка "Linux: can't open /dev/dsp" то тогава извършете това по- долу:

Решение на проблема по- горе:

Редактира се файл (.festivalrc) или (/usr/share/festival/festival.scm):
vim ~/.festivalrc
и се добавя това:
(Parameter.set 'Audio_Method 'Audio_Command)
(Parameter.set 'Audio_Command "aplay -q -c 1 -t raw -f s16 -r $SR $FILE")

Сега след като имаме инсталиран и работещ festival ще направим промени в конфигурационния файл на kismet.
kismet.conf(за сървъра)

#Променя се от false на true
Speech=true
#Променя се от nato на speech
speech_type=speech

Ако не искаме да говори kismet сървъра, а нашият kismet клиент правим същите промени, но за "kismet_ui.conf"

Сега ще стартираме и gpsdrive. Неговата цел е да взима данните от Kismet ~/.gpsdrive/way.txt , да ги записва в MySQL базата(която ще създадем след малко) и да визуализира текущото ни местоположение на картата.

Първо трябва да създадем нашата база с таблиците които ще ползва gpsdrive изпълняваме:
geoinfo --create-db geoinfo --db-name geoinfo --db-user gast --db-password gast

Стартираме gpsdrive и какво ? Данните се записват и всичко е страхотно :)

Но на мен лично тази карта не ми допада особено и искам всичко това да го преместя в/у картата на GoogleEarth. За целта използвах едно готово python скриптче, което не работеше (нямаше и автор) и трябваше да пренапиша. Може да бъде изтеглено от тук: gpsdriveToGoogleEarth_mpetrov_net.py

изпълняваме python скриптчето което трябва да конвертира от gpsdrive към GoogleEarth:

python gpsdriveToGoogleEarth_mpetrov_net.py

Получавам следната грешка"
#:/tmp# python gpsdriveToGoogleEarth_mpetrov_net.py
Traceback (most recent call last):
File "gpsdriveToGoogleEarth_mpetrov_net.py", line 1, in <module>
import MySQLdb
ImportError: No module named MySQLdb

Това е защото очевидно нямам mysql модул за python. Сега ще го инсталирам:

apt-get install python-mysqldb

Сега като го изпълним и ще се генерира файл wireless_mpetrov_net.kml които ще вкараме в Google Earth, чрез импорт. Виждаме мрежите които сме картографирали по- рано.

В интерес на истината написах едно простичко bash скриптче което прави някои неща автоматизирано. То може да бъде изтеглено от тук:  War Driver 1.0

Потенциален проблем които може да възникне при употребата на Kismet
Проблем при стартиране на Kismet:

ERROR:  Unable to find room for logging files within 100 counts.  If you really are
logging this many times in 1 day, change log title or edit the source.
WARNING: Error disabling monitor mode: Failed to set channel 0 22:Invalid argument
WARNING: wlan0 (wlan0) left in an unknown state.  You may need to manually
restart or reconfigure it for normal operation.
WARNING: Sometimes cards don't always come out of monitor mode
cleanly.  If your card is not fully working, you may need to
restart or reconfigure it for normal operation.
Trying to wake networkmanager back up…
Kismet exiting.

Решението е :
rm -fr /var/log/kismet/*

Идеята на тази публикация е с учебна цел. Аз като автор не нося никаква отговорност за причинени от нея щети.

PS: Моля слагайте си WPA2 пароли с максимална дължина и сложност поне като минимално нещо което трябва да направите за свойте wireless мрежи.

Компилиране на coWPAtty под Debian

24 януари, 2010 3 коментари

coWPAtty е приложение което се използва за bruteforce на WPA PSK. Полезен е за аудит на вашата Wireless мрежа.

apt-get install && apt-get instal gcc libssl-dev libpcap-dev
wget http://wirelessdefence.org/Contents/Files/cowpatty-4.2.tgz
tar zxvf cowpatty-4.2.tgz
cd cowpatty-4.2
make

Тук го компилирах на една машинка и се сблъсках (LOL) със следните грешки като след всяка грешка е

решението .

Първа грешка:

cc -pipe -Wall -DOPENSSL  -O2 -g3 -ggdb   -c -o md5.o md5.c
md5.c:25:25: error: openssl/md5.h: мЪЛЮ РЮЙЗБ ТЮИК ХКХ ДХПЕЙРНПХЪ
md5.c: In function 'md5_mac':
md5.c:33: error: 'MD5_CTX' undeclared (first use in this function)
md5.c:33: error: (Each undeclared identifier is reported only once
md5.c:33: error: for each function it appears in.)
md5.c:33: error: expected ';' before 'context'
md5.c:34: warning: implicit declaration of function 'MD5_Init'
md5.c:34: error: 'context' undeclared (first use in this function)
md5.c:35: warning: implicit declaration of function 'MD5_Update'
md5.c:38: warning: implicit declaration of function 'MD5_Final'
md5.c: In function 'hmac_md5_vector':
md5.c:45: error: 'MD5_CTX' undeclared (first use in this function)
md5.c:45: error: expected ';' before 'context'
md5.c:53: error: 'context' undeclared (first use in this function)
make: *** [md5.o] Error 1

Решение: apt-get install libssl-dev

Втора грешка:
cc -pipe -Wall -DOPENSSL  -O2 -g3 -ggdb   -c -o sha1.o sha1.c
cc -pipe -Wall -DOPENSSL  -O2 -g3 -ggdb   -c -o utils.o utils.c
utils.c:34:18: error: pcap.h: мЪЛЮ РЮЙЗБ ТЮИК ХКХ ДХПЕЙРНПХЪ
In file included from utils.c:35:
utils.h:29: error: expected ')' before '*' token
utils.c:142: error: expected ')' before '*' token
make: *** [utils.o] Error 1

Решение: apt-get install libpcap-dev

php грешка: undefined function imagecreatefromgif

14 януари, 2010 1 коментар

Това е публикация за начинаещи web php разработчици :) (web и php , че и разработчик) :)
Пускате готов скрипт които вероятно не сте писали и ви излиза тази грешка:

Fatal error Call to undefined function imagecreatefromgif()

Отговорът на тази грешка е, че няма gd support за обработване на изображения. За целта го инсталираме(в случая deb базирано дистро):
apt-get install php5-gd

След това рестартираме apache:

/etc/init.d/apache2 restart

След това phpinfo() и виждате, че вътре вече има GD. Ето снимка:

Сега вече изпълнявате отново скритпа които даваше грешка и виждате, (че ви излиза друга грешка. Трябва да прочетете повече, шегувам се) че всичко е наред.

Компилиране на cmdiag

10 януари, 2010 Няма коментари

Това е инструмент за диагностика на DOCSIS кабелни модеми.
Изтегля информацията от модема в реално време и показва ключови параметри по отношение на мрежата. Инструмента е писан на С++ и работи на Linux и FreeBSD.

Сваляне: http://sourceforge.net/projects/cmdiag/
Официална страница: http://sourceforge.net/projects/cmdiag/
Картинки: http://sourceforge.net/project/screenshots.php?group_id=212972

Лиценз: GPL

Имах проблеми при компилирането на cmdiag версия 0.2

При изпълнение на make получавах следната грешка:

traffic:/tmp/cmdiag-0.2# make
g++ -Wall -O2  -c cmdiag.cpp
cmdiag.cpp:12:21: error: ncurses.h: Няма такъв файл или директория
cmdiag.cpp: In function 'int main(int, char**)':
cmdiag.cpp:28: warning: deprecated conversion from string constant to 'char*'
cmdiag.cpp:29: warning: deprecated conversion from string constant to 'char*'
cmdiag.cpp:30: warning: deprecated conversion from string constant to 'char*'
cmdiag.cpp:31: warning: deprecated conversion from string constant to 'char*'
cmdiag.cpp:33: error: 'initscr' was not declared in this scope
cmdiag.cpp:34: error: 'cbreak' was not declared in this scope
cmdiag.cpp:35: error: 'noecho' was not declared in this scope
cmdiag.cpp:36: error: 'stdscr' was not declared in this scope
cmdiag.cpp:36: error: 'TRUE' was not declared in this scope
cmdiag.cpp:36: error: 'keypad' was not declared in this scope
cmdiag.cpp:37: error: 'start_color' was not declared in this scope
cmdiag.cpp:38: error: 'curs_set' was not declared in this scope
cmdiag.cpp:40: error: 'A_BOLD' was not declared in this scope
cmdiag.cpp:40: error: 'attron' was not declared in this scope
cmdiag.cpp:41: error: 'mvwaddstr' was not declared in this scope
cmdiag.cpp:42: error: 'attroff' was not declared in this scope
cmdiag.cpp:45: warning: deprecated conversion from string constant to 'char*'
cmdiag.cpp:45: warning: deprecated conversion from string constant to 'char*'
cmdiag.cpp:115: error: 'refresh' was not declared in this scope
cmdiag.cpp:210: error: 'mvaddnstr' was not declared in this scope
cmdiag.cpp:211: error: 'strstr' was not declared in this scope
cmdiag.cpp:272: error: 'endwin' was not declared in this scope
make: *** [cmdiag.o] Error 1

Проблемът е, че няма ncurses-dev за целта го инсталиране: apt-get install libncurses5-dev и изпълняваме отново "make clean && make"

Отново получаваме грешна, но от друг характер, а именно:

traffic:/tmp/cmdiag-0.2# make clean && make
rm -f *.o
rm -f cmdiag
rm -f *.*~
g++ -Wall -O2  -c cmdiag.cpp
cmdiag.cpp: In function 'int main(int, char**)':
cmdiag.cpp:28: warning: deprecated conversion from string constant to 'char*'
cmdiag.cpp:29: warning: deprecated conversion from string constant to 'char*'
cmdiag.cpp:30: warning: deprecated conversion from string constant to 'char*'
cmdiag.cpp:31: warning: deprecated conversion from string constant to 'char*'
cmdiag.cpp:45: warning: deprecated conversion from string constant to 'char*'
cmdiag.cpp:45: warning: deprecated conversion from string constant to 'char*'
cmdiag.cpp:211: error: 'strstr' was not declared in this scope
make: *** [cmdiag.o] Error 1

Тази грешка е причинена от това, че във файл cmdiag.cpp липсва хедъра string.h за целта добавяме в cmdiag.cpp  :

#include <string.h>

След това изпълняваме отново  "make clean && make" и всичко се компилира точно и вече имаме cmdiag

Ето снимка на cmdiag:

perror и как той ще ни помогне да разрешаваме проблемите в MySQL

1 ноември, 2009 Няма коментари

perror е конзолно приложение от пакета MySQL което има за цел да извежда грешките по зададен "номер на грешка". На всеки се е случвало в MySQL да получи грешка  и да се чуди какво означава "Got error 29 … (Errcode: 24) …". Повечето хора веднага започват да търся в google какво означава това, но благодарение на perror това не е необходимо. От терминала си просто изпълнете perror с аргумент номера на грешката и ще получите отговор какъв е проблема в MySQL(не в MySQL, а какво не е конфигурирано правилно в MySQL).
Пример за за използване на perror за търсене на грешка с номер 28 :

# perror 28
OS error code  28:  No space left on device

От отговора на perror става ясно къде е проблема. решението ставям на вас ;)

За мое и ваше улеснение ще предоставя номерата на грешките и техните описания според perror:

OS error code   1:  Operation not permitted
OS error code   2:  No such file or directory
OS error code   3:  No such process
OS error code   4:  Interrupted system call
OS error code   5:  Input/output error
OS error code   6:  No such device or address
OS error code   7:  Argument list too long
OS error code   8:  Exec format error
OS error code   9:  Bad file descriptor
OS error code  10:  No child processes
OS error code  11:  Resource temporarily unavailable
OS error code  12:  Cannot allocate memory
OS error code  13:  Permission denied
OS error code  14:  Bad address
OS error code  15:  Block device required
OS error code  16:  Device or resource busy
OS error code  17:  File exists
OS error code  18:  Invalid cross-device link
OS error code  19:  No such device
OS error code  20:  Not a directory
OS error code  21:  Is a directory
OS error code  22:  Invalid argument
OS error code  23:  Too many open files in system
OS error code  24:  Too many open files
OS error code  25:  Inappropriate ioctl for device
OS error code  26:  Text file busy
OS error code  27:  File too large
OS error code  28:  No space left on device
OS error code  29:  Illegal seek
OS error code  30:  Read-only file system
OS error code  31:  Too many links
OS error code  32:  Broken pipe
OS error code  33:  Numerical argument out of domain
OS error code  34:  Numerical result out of range
OS error code  35:  Resource deadlock avoided
OS error code  36:  File name too long
OS error code  37:  No locks available
OS error code  38:  Function not implemented
OS error code  39:  Directory not empty
OS error code  40:  Too many levels of symbolic links
OS error code  42:  No message of desired type
OS error code  43:  Identifier removed
OS error code  44:  Channel number out of range
OS error code  45:  Level 2 not synchronized
OS error code  46:  Level 3 halted
OS error code  47:  Level 3 reset
OS error code  48:  Link number out of range
OS error code  49:  Protocol driver not attached
OS error code  50:  No CSI structure available
OS error code  51:  Level 2 halted
OS error code  52: Invalid exchange
OS error code  53:  Invalid request descriptor
OS error code  54:  Exchange full
OS error code  55:  No anode
OS error code  56:  Invalid request code
OS error code  57:  Invalid slot
OS error code  59:  Bad font file format
OS error code  60:  Device not a stream
OS error code  61:  No data available
OS error code  62:  Timer expired
OS error code  63:  Out of streams resources
OS error code  64:  Machine is not on the network
OS error code  65:  Package not installed
OS error code  66:  Object is remote
OS error code  67:  Link has been severed
OS error code  68:  Advertise error
OS error code  69:  Srmount error
OS error code  70:  Communication error on send
OS error code  71:  Protocol error
OS error code  72:  Multihop attempted
OS error code  73:  RFS specific error
OS error code  74:  Bad message
OS error code  75:  Value too large for defined data type
OS error code  76:  Name not unique on network
OS error code  77:  File descriptor in bad state
OS error code  78:  Remote address changed
OS error code  79:  Can not access a needed shared library
OS error code  80:  Accessing a corrupted shared library
OS error code  81:  .lib section in a.out corrupted
OS error code  82:  Attempting to link in too many shared libraries
OS error code  83:  Cannot exec a shared library directly
OS error code  84:  Invalid or incomplete multibyte or wide character
OS error code  85:  Interrupted system call should be restarted
OS error code  86:  Streams pipe error
OS error code  87:  Too many users
OS error code  88:  Socket operation on non-socket
OS error code  89:  Destination address required
OS error code  90:  Message too long
OS error code  91:  Protocol wrong type for socket
OS error code  92:  Protocol not available
OS error code  93:  Protocol not supported
OS error code  94:  Socket type not supported
OS error code  95:  Operation not supported
OS error code  96:  Protocol family not supported
OS error code  97:  Address family not supported by protocol
OS error code  98:  Address already in use
OS error code  99:  Cannot assign requested address
OS error code 100:  Network is down
OS error code 101:  Network is unreachable
OS error code 102:  Network dropped connection on reset
OS error code 103:  Software caused connection abort
OS error code 104:  Connection reset by peer
OS error code 105:  No buffer space available
OS error code 106:  Transport endpoint is already connected
OS error code 107:  Transport endpoint is not connected
OS error code 108:  Cannot send after transport endpoint shutdown
OS error code 109:  Too many references: cannot splice
OS error code 110:  Connection timed out
OS error code 111:  Connection refused
OS error code 112:  Host is down
OS error code 113:  No route to host
OS error code 114:  Operation already in progress
OS error code 115:  Operation now in progress
OS error code 116:  Stale NFS file handle
OS error code 117:  Structure needs cleaning
OS error code 118:  Not a XENIX named type file
OS error code 119:  No XENIX semaphores available
OS error code 120:  Is a named type file
OS error code 121:  Remote I/O error
OS error code 122:  Disk quota exceeded
OS error code 123:  No medium found
OS error code 124:  Wrong medium type
OS error code 125:  Operation canceled
MySQL error code 126: Index file is crashed
MySQL error code 127: Record-file is crashed
MySQL error code 128: Out of memory
MySQL error code 130: Incorrect file format
MySQL error code 131: Command not supported by database
MySQL error code 132: Old database file
MySQL error code 133: No record read before update
MySQL error code 134: Record was already deleted (or record file crashed)
MySQL error code 135: No more room in record file
MySQL error code 136: No more room in index file
MySQL error code 137: No more records (read after end of file)
MySQL error code 138: Unsupported extension used for table
MySQL error code 139: Too big row
MySQL error code 140: Wrong create options
MySQL error code 141: Duplicate unique key or constraint on write or update
MySQL error code 142: Unknown character set used
MySQL error code 143: Conflicting table definitions in sub-tables of MERGE table
MySQL error code 144: Table is crashed and last repair failed
MySQL error code 145: Table was marked as crashed and should be repaired
MySQL error code 146: Lock timed out; Retry transaction
MySQL error code 147: Lock table is full;  Restart program with a larger locktable
MySQL error code 148: Updates are not allowed under a read only transactions
MySQL error code 149: Lock deadlock; Retry transaction
MySQL error code 150: Foreign key constraint is incorrectly formed
MySQL error code 151: Cannot add a child row
MySQL error code 152: Cannot delete a parent row

Inappropriate ioctl for device
Categories: sadmin Tags: , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , , ,

Конфигуриране, компилиране и инсталиране на mysql 5.1.40

26 октомври, 2009 Няма коментари

За да компилирате първо трябва да изтеглите Mysql 5.1.40  от ТУК (21.1 MB)
wget http://dev.mysql.com/get/Downloads/MySQL-5.1/mysql-5.1.40.tar.gz/from/http://mysql.online.bg/

Разархивирате  и конфигурирате mysql 5.1.40:

./configure --prefix=/usr/local/mysql \
--enable-thread-safe-client --enable-local-infile \
--with-pic --with-fast-mutexes --disable-shared \
--with-big-tables --with-readline --with-plugins=innobase \
--with-mysqld-user=mysql --with-extra-charsets=all

Компилирате и инсталирате mysql 5.1.40:
make && make install

За по- добра сигурност на mysql 5.1.40 да се изпълнява mysql потребител:

sudo groupadd mysql
sudo useradd -g mysql mysql

Проблеми които възникнаха при конфигурирането, компилирането,  инсталирането и стартирането на mysql 5.1.40:

Проблем при конфигурирането:
/bin/rm: cannot remove `libtoolT': No such file or directory
config.status: executing default commands
Решение (проблема не е особено сериозен(за мен няма такъв проблем, но така да го кажа)- Проблемът си е проблем) по- долу:

Проблем: При изпълнение на "libtoolize --force"
Using `AC_PROG_RANLIB' is rendered obsolete by `AC_PROG_LIBTOOL'

Решение:
Редактиране на configure.in (в директорията на mysql-5.1) коментирате 230 ред (#AC_PROG_RANLIB) .
Пример на configure.in:

# Still need ranlib for readline; local static use only so no libtool.
#AC_PROG_RANLIB
# We use libtool
#AC_LIBTOOL_WIN32_DLL
AC_PROG_LIBTOOL

Проблем: При изпълнение на "libtoolize --force"
изникна грешка: "You should update your `aclocal.m4' by running aclocal."
Решение: aclocal

Проблем: При изпълнение на aclocal
/usr/share/aclocal/libmcrypt.m4:17: warning: underquoted definition of AM_PATH_LIBMCRYPT
run info '(automake)Extending aclocal'
or see http://sources.redhat.com/automake/automake.html#Extending-aclocal

Решение:
Проблемът е във файл "libmcrypt.m4" или "/usr/share/aclocal/libmcrypt.m4" , ред 17:
AC_DEFUN(AM_PATH_LIBMCRYPT,

За да поправим проблема редактираме 17-ти ред по следния начин:
AC_DEFUN([AM_PATH_LIBMCRYPT],

Проблем: При ./configure
/tmp/mysql-5.1.40/missing: line 54: automake-1.10: command not found
WARNING: `automake-1.10' is missing on your system.  You should only need it if
you modified `Makefile.am', `acinclude.m4' or `configure.in'.
You might want to install the `Automake' and `Perl' packages.
Grab them from any GNU archive site.

Решение: apt-get install automake

Проблем: При стартиране на Mysqld със: /usr/local/mysql/libexec/mysqld --user=mysql &
се получава следната грешка:
[ERROR] Can't find messagefile '/usr/share/mysql/english/errmsg.sys'
Решение: ln -s /usr/local/mysql/share/mysql/ /usr/share/mysql

alpha:~# /usr/local/mysql/bin/mysqld_safe --user=mysql
091026 18:16:16 mysqld_safe Logging to '/usr/local/mysql/var/alpha.err'.
touch: cannot touch `/usr/local/mysql/var/alpha.err': No such file or directory
chown: cannot access `/usr/local/mysql/var/alpha.err': No such file or directory
091026 18:16:16 mysqld_safe Starting mysqld daemon with databases from /usr/local/mysql/var
/usr/local/mysql/bin/mysqld_safe: line 100: /usr/local/mysql/var/alpha.err: No such file or directory
/usr/local/mysql/bin/mysqld_safe: line 137: /usr/local/mysql/var/alpha.err: No such file or directory
091026 18:16:16 mysqld_safe mysqld from pid file /usr/local/mysql/var/alpha.pid ended
/usr/local/mysql/bin/mysqld_safe: line 100: /usr/local/mysql/var/alpha.err: No such file or directory

Решение:
mkdir /usr/local/mysql/var/;
chown mysql.mysql /usr/local/mysql/var/;

Проблем при стартиране на mysqld_safe:
091026 18:46:17 [Warning] The syntax '--log' is deprecated and will be removed in MySQL 7.0. Please use

'--general_log'/'--general_log_file' instead.
091026 18:46:17 [Warning] The syntax '--log_slow_queries' is deprecated and will be removed in MySQL 7.0. Please use

'--slow_query_log'/'--slow_query_log_file' instead.

Решение: В /etc/mysql/my.cnf заменяме "log" със "general_log" и "log-slow-queries" със "slow_query_log"

Друг проблем: 091026 18:50:05 [ERROR] /usr/local/mysql/libexec/mysqld: unknown option '--skip-bdb'

Решение: премахвате просто skip-bdb

Стартиране на mysql 5.1.40:
/usr/local/mysql/bin/mysqld_safe --user=mysql &

Спиране на mysql 5.1.40:
/usr/local/mysql//bin/mysqladmin shutdown

Примерен конфигурационен файл my.cnf
(Поставям го в /etc/mysql/my.cnf (Допада ми Debian layoute -a). Може да се добави и в /etc/my.cnf . Когато се стартира mysqld_safe той автоматично проверява на тези места за конфигурационен файл и ако го намери го зарежда).:

# The MySQL server 5.1.40. My.cnf generated by amri, Mon Oct 26 19:07:30 EET 2009

[mysqld]
port            = 3306
datadir=/var/lib/mysql
socket=/var/run/mysqld/mysqld.sock

# Try number of CPU's*2 for thread_concurrency
thread_concurrency = 2

# Section Logging
general_log=/var/log/mysql/mysql.log
log-bin=/var/log/mysql/mysql-bin.log
slow_query_log=/var/log/mysql/mysql_slow.log
long_query_time=10

#Section Skip
skip-locking

#Server ID
server-id       = 1

# Optimized
key_buffer = 512M
key_buffer_size = 384M

wait_timeout=360

max_allowed_packet = 16M

read_buffer_size = 2M
sort_buffer_size = 2M
net_buffer_length = 8K
read_rnd_buffer_size = 8M
myisam_sort_buffer_size = 64M

max_connections = 600

join_buffer_size = 1M
read_buffer_size = 1M
sort_buffer_size = 2M
table_cache = 1024
table_open_cache = 512
thread_cache_size = 64

query_cache_limit = 1M
query_cache_size = 32M
query_cache_type = 1

set-variable = max_connections=1400
set-variable = max_connect_errors=150

[client]
port    = 3306
socket=/var/run/mysqld/mysqld.sock

[mysqldump]
quick
max_allowed_packet = 16M

[mysql]
no-auto-rehash
# Remove the next comment character if you are not familiar with SQL
#safe-updates

[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 256M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

Стойностите които са в този конфигурационен файл са използвани за тестове. Не мога да ги препоръчам за стабилен mysql.

Примерен mysql.server.sh :

#!/bin/sh
# Copyright Abandoned 1996 TCX DataKonsult AB & Monty Program KB & Detron HB
# This file is public domain and comes with NO WARRANTY of any kind

# MySQL daemon start/stop script.

# Usually this is put in /etc/init.d (at least on machines SYSV R4 based
# systems) and linked to /etc/rc3.d/S99mysql and /etc/rc0.d/K01mysql.
# When this is done the mysql server will be started when the machine is
# started and shut down when the systems goes down.

# Comments to support chkconfig on RedHat Linux
# chkconfig: 2345 64 36
# description: A very fast and reliable SQL database engine.

# Comments to support LSB init script conventions
### BEGIN INIT INFO
# Provides: mysql
# Required-Start: $local_fs $network $remote_fs
# Should-Start: ypbind nscd ldap ntpd xntpd
# Required-Stop: $local_fs $network $remote_fs
# Default-Start:  2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: start and stop MySQL
# Description: MySQL is a very fast and reliable SQL database engine.
### END INIT INFO

# If you install MySQL on some other places than @prefix@, then you
# have to do one of the following things for this script to work:
#
# -- Run this script from within the MySQL installation directory
# -- Create a /etc/my.cnf file with the following information:
#   [mysqld]
#   basedir=<path-to-mysql-installation-directory>
# -- Add the above to any other configuration file (for example ~/.my.ini)
#   and copy my_print_defaults to /usr/bin
# -- Add the path to the mysql-installation-directory to the basedir variable
#   below.
#
# If you want to affect other MySQL variables, you should make your changes
# in the /etc/my.cnf, ~/.my.cnf or other MySQL configuration files.

# If you change base dir, you must also change datadir. These may get
# overwritten by settings in the MySQL configuration files.

basedir="/usr/local/mysql";
datadir="/var/lib/mysql";

# Default value, in seconds, afterwhich the script should timeout waiting
# for server start.
# Value here is overriden by value in my.cnf.
# 0 means don't wait at all
# Negative numbers mean to wait indefinitely
service_startup_timeout=900

# The following variables are only set for letting mysql.server find things.

# Set some defaults
pid_file="/var/run/mysqld/mysqld.pid";
server_pid_file="/var/run/mysqld/mysqld.pid";

use_mysqld_safe=1
user=@MYSQLD_USER@
if test -z "$basedir"
then
basedir=@prefix@
bindir=@bindir@
if test -z "$datadir"
then
datadir=@localstatedir@
fi
sbindir=@sbindir@
libexecdir=@libexecdir@
else
bindir="$basedir/bin"
if test -z "$datadir"
then
datadir="$basedir/data"
fi
sbindir="$basedir/sbin"
libexecdir="$basedir/libexec"
fi

# datadir_set is used to determine if datadir was set (and so should be
# *not* set inside of the --basedir= handler.)
datadir_set=

#
# Use LSB init script functions for printing messages, if possible
#
lsb_functions="/lib/lsb/init-functions"
if test -f $lsb_functions ; then
. $lsb_functions
else
log_success_msg()
{
echo " SUCCESS! $@"
}
log_failure_msg()
{
echo " ERROR! $@"
}
fi

PATH=/sbin:/usr/sbin:/bin:/usr/bin:$basedir/bin
export PATH

mode=$1    # start or stop
shift
other_args="$*"   # uncommon, but needed when called from an RPM upgrade action
# Expected: "--skip-networking --skip-grant-tables"
# They are not checked here, intentionally, as it is the resposibility
# of the "spec" file author to give correct arguments only.

case `echo "testing\c"`,`echo -n testing` in
*c*,-n*) echo_n=   echo_c=     ;;
*c*,*)   echo_n=-n echo_c=     ;;
*)       echo_n=   echo_c='\c' ;;
esac

parse_server_arguments() {
for arg do
case "$arg" in
--basedir=*)  basedir=`echo "$arg" | sed -e 's/^[^=]*=//'`
bindir="$basedir/bin"
if test -z "$datadir_set"; then
datadir="$basedir/data"
fi
sbindir="$basedir/sbin"
libexecdir="$basedir/libexec"
;;
--datadir=*)  datadir=`echo "$arg" | sed -e 's/^[^=]*=//'`
datadir_set=1
;;
--user=*)  user=`echo "$arg" | sed -e 's/^[^=]*=//'` ;;
--pid-file=*) server_pid_file=`echo "$arg" | sed -e 's/^[^=]*=//'` ;;
--service-startup-timeout=*) service_startup_timeout=`echo "$arg" | sed -e 's/^[^=]*=//'` ;;
--use-mysqld_safe) use_mysqld_safe=1;;
--use-manager)     use_mysqld_safe=0;;
esac
done
}

parse_manager_arguments() {
for arg do
case "$arg" in
--pid-file=*) pid_file=`echo "$arg" | sed -e 's/^[^=]*=//'` ;;
--user=*)  user=`echo "$arg" | sed -e 's/^[^=]*=//'` ;;
esac
done
}

wait_for_pid () {
verb="$1"
manager_pid="$2"  # process ID of the program operating on the pid-file
i=0
avoid_race_condition="by checking again"
while test $i -ne $service_startup_timeout ; do

case "$verb" in
'created')
# wait for a PID-file to pop into existence.
test -s $pid_file && i=" && break
;;
'removed')
# wait for this PID-file to disappear
test ! -s $pid_file && i=" && break
;;
*)
echo "wait_for_pid () usage: wait_for_pid created|removed manager_pid"
exit 1
;;
esac

# if manager isn't running, then pid-file will never be updated
if test -n "$manager_pid"; then
if kill -0 "$manager_pid" 2>/dev/null; then
:  # the manager still runs
else
# The manager may have exited between the last pid-file check and now.
if test -n "$avoid_race_condition"; then
avoid_race_condition=""
continue  # Check again.
fi

# there's nothing that will affect the file.
log_failure_msg "Manager of pid-file quit without updating file."
return 1  # not waiting any more.
fi
fi

echo $echo_n ".$echo_c"
i=`expr $i + 1`
sleep 1
done

if test -z "$i" ; then
log_success_msg
return 0
else
log_failure_msg
return 1
fi
}

# Get arguments from the my.cnf file,
# the only group, which is read from now on is [mysqld]
if test -x ./bin/my_print_defaults
then
print_defaults="./bin/my_print_defaults"
elif test -x $bindir/my_print_defaults
then
print_defaults="$bindir/my_print_defaults"
elif test -x $bindir/mysql_print_defaults
then
print_defaults="$bindir/mysql_print_defaults"
else
# Try to find basedir in /etc/my.cnf
conf=/etc/my.cnf
print_defaults=
if test -r $conf
then
subpat='^[^=]*basedir[^=]*=\(.*\)$'
dirs=`sed -e "/$subpat/!d" -e 's//\1/' $conf`
for d in $dirs
do
d=`echo $d | sed -e 's/[  ]//g'`
if test -x "$d/bin/my_print_defaults"
then
print_defaults="$d/bin/my_print_defaults"
break
fi
if test -x "$d/bin/mysql_print_defaults"
then
print_defaults="$d/bin/mysql_print_defaults"
break
fi
done
fi

# Hope it's in the PATH … but I doubt it
test -z "$print_defaults" && print_defaults="my_print_defaults"
fi

#
# Read defaults file from 'basedir'.   If there is no defaults file there
# check if it's in the old (depricated) place (datadir) and read it from there
#

extra_args=""
if test -r "$basedir/my.cnf"
then
extra_args="-e $basedir/my.cnf"
else
if test -r "$datadir/my.cnf"
then
extra_args="-e $datadir/my.cnf"
fi
fi

parse_server_arguments `$print_defaults $extra_args mysqld server mysql_server mysql.server`

# Look for the pidfile
parse_manager_arguments `$print_defaults $extra_args manager`

#
# Set pid file if not given
#
if test -z "$pid_file"
then
pid_file=$datadir/mysqlmanager-`@HOSTNAME@`.pid
else
case "$pid_file" in
/* ) ;;
* )  pid_file="$datadir/$pid_file" ;;
esac
fi
if test -z "$server_pid_file"
then
server_pid_file=$datadir/`@HOSTNAME@`.pid
else
case "$server_pid_file" in
/* ) ;;
* )  server_pid_file="$datadir/$server_pid_file" ;;
esac
fi

case "$mode" in
'start')
# Start daemon

# Safeguard (relative paths, core dumps..)
cd $basedir

manager=$bindir/mysqlmanager
if test -x $libexecdir/mysqlmanager
then
manager=$libexecdir/mysqlmanager
elif test -x $sbindir/mysqlmanager
then
manager=$sbindir/mysqlmanager
fi

echo $echo_n "Starting MySQL"
if test -x $manager -a "$use_mysqld_safe" = "0"
then
if test -n "$other_args"
then
log_failure_msg "MySQL manager does not support options '$other_args'"
exit 1
fi
# Give extra arguments to mysqld with the my.cnf file. This script may
# be overwritten at next upgrade.
"$manager" \
--mysqld-safe-compatible \
--user="$user" \
--pid-file="$pid_file" >/dev/null 2>&1 &
wait_for_pid created $!; return_value=$?

# Make lock for RedHat / SuSE
if test -w /var/lock/subsys
then
touch /var/lock/subsys/mysqlmanager
fi
exit $return_value
elif test -x $bindir/mysqld_safe
then
# Give extra arguments to mysqld with the my.cnf file. This script
# may be overwritten at next upgrade.
pid_file=$server_pid_file
$bindir/mysqld_safe --datadir=$datadir --pid-file=$server_pid_file $other_args >/dev/null 2>&1 &
wait_for_pid created $!; return_value=$?

# Make lock for RedHat / SuSE
if test -w /var/lock/subsys
then
touch /var/lock/subsys/mysql
fi
exit $return_value
else
log_failure_msg "Couldn't find MySQL manager ($manager) or server ($bindir/mysqld_safe)"
fi
;;

'stop')
# Stop daemon. We use a signal here to avoid having to know the
# root password.

# The RedHat / SuSE lock directory to remove
lock_dir=/var/lock/subsys/mysqlmanager

# If the manager pid_file doesn't exist, try the server's
if test ! -s "$pid_file"
then
pid_file=$server_pid_file
lock_dir=/var/lock/subsys/mysql
fi

if test -s "$pid_file"
then
mysqlmanager_pid=`cat $pid_file`

if (kill -0 $mysqlmanager_pid 2>/dev/null)
then
echo $echo_n "Shutting down MySQL"
kill $mysqlmanager_pid
# mysqlmanager should remove the pid_file when it exits, so wait for it.
wait_for_pid removed "$mysqlmanager_pid"; return_value=$?
else
log_failure_msg "MySQL manager or server process #$mysqlmanager_pid is not running!"
rm $pid_file
fi

# delete lock for RedHat / SuSE
if test -f $lock_dir
then
rm -f $lock_dir
fi
exit $return_value
else
log_failure_msg "MySQL manager or server PID file could not be found!"
fi
;;

'restart')
# Stop the service and regardless of whether it was
# running or not, start it again.
if $0 stop  $other_args; then
$0 start $other_args
else
log_failure_msg "Failed to stop running server, so refusing to try to start."
exit 1
fi
;;

'reload'|'force-reload')
if test -s "$server_pid_file" ; then
read mysqld_pid <  $server_pid_file
kill -HUP $mysqld_pid && log_success_msg "Reloading service MySQL"
touch $server_pid_file
else
log_failure_msg "MySQL PID file could not be found!"
exit 1
fi
;;
'status')
# First, check to see if pid file exists
if test -s "$server_pid_file" ; then
read mysqld_pid < $server_pid_file
if kill -0 $mysqld_pid 2>/dev/null ; then
log_success_msg "MySQL running ($mysqld_pid)"
exit 0
else
log_failure_msg "MySQL is not running, but PID file exists"
exit 1
fi
else
# Try to find appropriate mysqld process
mysqld_pid=`pidof $libexecdir/mysqld`
if test -z $mysqld_pid ; then
if test "$use_mysqld_safe" = "0" ; then
lockfile=/var/lock/subsys/mysqlmanager
else
lockfile=/var/lock/subsys/mysql
fi
if test -f $lockfile ; then
log_failure_msg "MySQL is not running, but lock exists"
exit 2
fi
log_failure_msg "MySQL is not running"
exit 3
else
log_failure_msg "MySQL is running but PID file could not be found"
exit 4
fi
fi
;;
*)
# usage
echo "Usage: $0  {start|stop|restart|reload|force-reload|status}  [ MySQL server options ]"
exit 1
;;
esac

exit 0

Fatal error: Call to undefined function xmlrpc_encode_request()

20 октомври, 2009 Няма коментари

Лошава грешка. Очевидно които е ползва xmlrpc знае за какво иде реч, но все пак за тези които не са просветлени. Повече информация за функцията може да намерите тук: php.net .
Проблемът с xmlrpc_encode_request се решава като се инсталира модула за xmlrpc, а именно при Debian:

apt-get install php5-xmlrpc

Това е всичко сега вече функцията xmlrpc_encode_request работи страхотно.

Проблем с phpmyadmin

14 октомври, 2009 Няма коментари

Днес ми репортнаха за един от моите инсталирани phpmyadmin, че извеждал грешка :
PHPMYADMIN The configuration file now needs a secret passphrase (blowfish_secret).

Решението е:

Отваряте файл /var/lib/phpmyadmin/blowfish_secret.inc.php
и се копира този ред където е въведен вашият blowfish. Пример:
$cfg['blowfish_secret'] = 'Примерен hesh81927398akjhasdklfj';

Копираната променлива и хеш записвате в най- долния ред на файла /etc/phpmyadmin/blowfish_secret.inc.php

След това презареждате phpmyadmin от браузъра и всичко е наред. :)

Грешка при компилиране на mysql

9 септември, 2009 Няма коментари

грешка при MysqlПри компилиране на mysql и добавяне на допълнителни engines изпълнявам:
sh BUILD/autorun.sh
и се получава грешката по- долу(това е грешка причинена от aclocal които се вика от autorun.sh)

Ето я и грешката:

$ aclocal
/usr/share/aclocal/libmcrypt.m4:17: warning: underquoted definition of AM_PATH_LIBMCRYPT
/usr/share/aclocal/libmcrypt.m4:17: run info '(automake)Extending aclocal'
/usr/share/aclocal/libmcrypt.m4:17: or see http://sources.redhat.com/automake/automake.html#Extending-aclocal

Проблемът е във файл "libmcrypt.m4" или "/usr/share/aclocal/libmcrypt.m4" , ред 17:

AC_DEFUN(AM_PATH_LIBMCRYPT,
За да поправим проблема редактираме 17-ти ред по следния начин:

AC_DEFUN([AM_PATH_LIBMCRYPT],