Trädvy Permalänk
Medlem
Plats
Malmö
Registrerad
Jul 2004

mysql.sock finns inte

När jag försöker starta mysql så får jag felet "error: Can't connect to local MySQL socket through '/tmp/mysql.sock'" och det förstår jag, eftersom mysql.sock inte finns i /tmp, och inte någon annanstans på datorn heller. Jag är root och försöker starta med mysql -u root -p .

Jag har sökt och testat med diverse lösningar, t ex mysqld_safe --user=mysql & .

Vad ska man göra åt detta?

Trädvy Permalänk
Medlem
Plats
Nora
Registrerad
Aug 2004

är det Debian du kör?
jag fick det problemet när ajg körde nyaste MySQL från apt-get, eller älsta kanske det va, vet iaf att jag bytta verison med apt-get så funkade det, för jag kunde inte lösa det :S, jag googlade som fan men hittade inget

GL iaf!

Trädvy Permalänk
Medlem
Plats
Malmö
Registrerad
Jul 2004

Nej jag kör slackware 10.2, php5, mysql5, apache2. Jag har installerat från källkod.

Trädvy Permalänk
Hedersmedlem
Plats
Stockholm
Registrerad
Dec 2002

Kollat i /var/run/mysql/?

Vim
Kinesis Classic Contoured (svart), Svorak (A5)
Medlem i signaturgruppen Vimzealoter.

Trädvy Permalänk
Medlem
Plats
Mölndal
Registrerad
Jul 2005

I katalogen med databaserna finns det en fil som slutar med .err det är error-loggen för mysql, vad står det i den?

Kriga mot min brute: http://gunnard.se.mybrute.com om du vågar :D

Trädvy Permalänk
Medlem
Plats
Stockholm
Registrerad
Okt 2001

Kolla här ,lite rörig sida kanske men där finns ett flertal åtgärder för problemet. Kolla framförallt igenom kommentarerna.

Trädvy Permalänk
Medlem
Plats
Malmö
Registrerad
Jul 2004

localhost.err:

060730 14:49:04 mysqld started InnoDB: The first specified data file ./ibdata1 did not exist: InnoDB: a new database to be created! 060730 14:49:06 InnoDB: Setting file ./ibdata1 size to 10 MB InnoDB: Database physically writes the file full: wait... 060730 14:49:08 InnoDB: Log file ./ib_logfile0 did not exist: new to be created InnoDB: Setting log file ./ib_logfile0 size to 5 MB InnoDB: Database physically writes the file full: wait... 060730 14:49:08 InnoDB: Log file ./ib_logfile1 did not exist: new to be created InnoDB: Setting log file ./ib_logfile1 size to 5 MB InnoDB: Database physically writes the file full: wait... InnoDB: Doublewrite buffer not found: creating new InnoDB: Doublewrite buffer created InnoDB: Creating foreign key constraint system tables InnoDB: Foreign key constraint system tables created 060730 14:49:10 InnoDB: Started; log sequence number 0 0 060730 14:49:10 [ERROR] Fatal error: Can't open privilege tables: Table 'mysql.host' doesn't exist 060730 14:49:10 mysqld ended 060730 15:14:25 mysqld started InnoDB: The first specified data file ./ibdata1 did not exist: InnoDB: a new database to be created! 060730 15:14:27 InnoDB: Setting file ./ibdata1 size to 10 MB InnoDB: Database physically writes the file full: wait... 060730 15:14:28 InnoDB: Log file ./ib_logfile0 did not exist: new to be created InnoDB: Setting log file ./ib_logfile0 size to 5 MB InnoDB: Database physically writes the file full: wait... 060730 15:14:29 InnoDB: Log file ./ib_logfile1 did not exist: new to be created InnoDB: Setting log file ./ib_logfile1 size to 5 MB InnoDB: Database physically writes the file full: wait... InnoDB: Doublewrite buffer not found: creating new InnoDB: Doublewrite buffer created InnoDB: Creating foreign key constraint system tables InnoDB: Foreign key constraint system tables created 060730 15:14:31 InnoDB: Started; log sequence number 0 0 060730 15:14:31 [ERROR] Fatal error: Can't open privilege tables: Table 'mysql.host' doesn't exist 060730 15:14:31 mysqld ended 060730 15:33:02 mysqld started 060730 15:33:03 InnoDB: Database was not shut down normally! InnoDB: Starting crash recovery. InnoDB: Reading tablespace information from the .ibd files... InnoDB: Restoring possible half-written data pages from the doublewrite InnoDB: buffer... 060730 15:33:03 InnoDB: Starting log scan based on checkpoint at InnoDB: log sequence number 0 36808. InnoDB: Doing recovery: scanned up to log sequence number 0 43634 060730 15:33:03 InnoDB: Starting an apply batch of log records to the database... InnoDB: Progress in percents: 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 InnoDB: Apply batch completed 060730 15:33:03 InnoDB: Flushing modified pages from the buffer pool... 060730 15:33:03 InnoDB: Started; log sequence number 0 43634 060730 15:33:03 [ERROR] Fatal error: Can't open privilege tables: Table 'mysql.host' doesn't exist 060730 15:33:03 mysqld ended

/var/run/mysql/ finns, men är tom.

Hmm det verkar inte finnas så mycket som hjälper på den sidan...

Trädvy Permalänk
Medlem
Registrerad
Mar 2003

Jag hade också en del problem med att få igång mysql på slackware, tror att jag gjorde ungefär såhär.

chown -R mysql:mysql /var/lib/mysql
mysqld_safe &
mysql_install_db
mysqladmin -u root password 'dittnyarootlösen'

"With a rubberduck one's never alone"

Trädvy Permalänk
Medlem
Plats
Mölndal
Registrerad
Jul 2005
Citat:

Ursprungligen inskrivet av Fr0hike
localhost.err:

060730 14:49:04 mysqld started 060730 14:49:10 [ERROR] Fatal error: Can't open privilege tables: Table 'mysql.host' doesn't exist 060730 14:49:10 mysqld ended

MySQL kan inte hitta databasen med rättigheterna (heter mysql), har du installerat dom?

Scriptet som gör det heter mysql_install_db

Kriga mot min brute: http://gunnard.se.mybrute.com om du vågar :D

Trädvy Permalänk
Medlem
Plats
Malmö
Registrerad
Jul 2004
Citat:

Ursprungligen inskrivet av GunnarD
MySQL kan inte hitta databasen med rättigheterna (heter mysql), har du installerat dom?

Scriptet som gör det heter mysql_install_db

Ja. Jag har haft mysql igång en gång förut, när jag installerade. Jag installerade enligt denna sidan http://www.slackware.se/hakans_slackware/lamp/mysql/mysql.htm...

nu har jag gjort om mysql_install_db och skapat användare etc. Nu funkar det med mysql -u root -p i shell, men när jag försöker göra en koppling till mysql med något php-script så går det inte, då får jag följande fel "Warning: mysql_connect() [function.mysql-connect]: Can't connect to local MySQL server through socket '/var/run/mysql/mysql.sock' (2)". Nu säger den alltså att mysql.sock finns i /var/run/mysql. Jag har kollat, nu finns mysql.sock i /tmp. I /etc/my.cnf står det /tmp/mysql.cnf så det verkar stämma. Men en lustig grej är att mysql.sock är tom, dvs 0 byte. Eller är inte det lustigt?

Trädvy Permalänk
Medlem
Plats
Malmö
Registrerad
Okt 2004

Den ska vara 0 byte. Det är inte en vanlig fil, det är en "unix socket."

Och som du säkert listat ut så kan du med hjälp av my.cnf säga åt mysql var den ska lägga mysql.sock (om du önskar flytta den till t.ex. /var/run/mysql/)

Trädvy Permalänk
Medlem
Plats
Malmö
Registrerad
Jul 2004
Citat:

Ursprungligen inskrivet av Albatorsk
Den ska vara 0 byte. Det är inte en vanlig fil, det är en "unix socket."

Och som du säkert listat ut så kan du med hjälp av my.cnf säga åt mysql var den ska lägga mysql.sock (om du önskar flytta den till t.ex. /var/run/mysql/)

Hmm okej... Skulle man inte då kunna skapa en tom fil med namnet mysql.sock då? Om den saknades alltså.

Men ja, jag har ju angett i my.cnf att den ska kolla efter mysql.sock i /tmp men det funkar inte. Det funkar ju fint i shell, men inte i php...

Trädvy Permalänk
Medlem
Plats
Malmö
Registrerad
Okt 2004

Nej, jag tror du missuppfattade. mysql.sock används av andra program för att ansluta mot MySQL.

Du säger inte till MySQL var den ska leta efter den, du säger till det var sockeln skall ligga. Om den inte finns så skapas den.

I just ditt fall så letar PHP efter den i /var/run/mysql/, så för att lägga den där så skriver du socket = /var/run/mysql/mysql.sock i my.cnf

Det går också att säga åt PHP att leta efter mysql.sock i /tmp genom att ändra i php.ini. På så sätt behöver du inte ändra i inställningarna till MySQL.

Trädvy Permalänk
Medlem
Plats
Malmö
Registrerad
Jul 2004
Citat:

Ursprungligen inskrivet av Albatorsk
Nej, jag tror du missuppfattade. mysql.sock används av andra program för att ansluta mot MySQL.

Du säger inte till MySQL var den ska leta efter den, du säger till det var sockeln skall ligga. Om den inte finns så skapas den.

I just ditt fall så letar PHP efter den i /var/run/mysql/, så för att lägga den där så skriver du socket = /var/run/mysql/mysql.sock i my.cnf

Det går också att säga åt PHP att leta efter mysql.sock i /tmp genom att ändra i php.ini. På så sätt behöver du inte ändra i inställningarna till MySQL.

Nu fick jag igång skiten, men jag har ingen aning om det funkar när jag startat om datorn.

Tack för hjälpen.