avvio del server mysql non riuscito


28

Sto eseguendo il server Ubuntu. Quando ho provato ad accedere a mysql (che era in esecuzione), ho ricevuto il seguente errore

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

Ma il file mysqld.sock non esiste nella /var/run/mysqldcartella. Eseguendo il ps aux | grep mysqlcomando, mi sono reso conto che il server mysql non era in esecuzione.

Ho quindi provato a riavviare il server mysql utilizzando

service mysql start
service mysql restart
/etc/init.d/mysql start

Tuttavia, il processo di avvio non è riuscito in tutti e 3 i casi. /var/log/mysql/mysql.loge i /var/log/mysql/mysql.errfile sono vuoti.

Ma /var/log/error.logmostra le seguenti informazioni:

140425 12:49:05 [Warning] Using unique option prefix myisam-recover instead of myisam-recover-options is deprecated and will be removed in a future release. Please use the full name instead.
140425 12:49:05 [Note] Plugin 'FEDERATED' is disabled.
140425 12:49:05 InnoDB: The InnoDB memory heap is disabled
140425 12:49:05 InnoDB: Mutexes and rw_locks use GCC atomic builtins
140425 12:49:05 InnoDB: Compressed tables use zlib 1.2.8
140425 12:49:05 InnoDB: Using Linux native AIO
140425 12:49:05 InnoDB: Initializing buffer pool, size = 3.0G
140425 12:49:05 InnoDB: Completed initialization of buffer pool
InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 26214400 bytes!
140425 12:49:05 [ERROR] Plugin 'InnoDB' init function returned error.
140425 12:49:05 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
140425 12:49:05 [ERROR] /usr/sbin/mysqld: unknown variable 'record_buffer=64M'
140425 12:49:05 [ERROR] Aborting

140425 12:49:05 [Note] /usr/sbin/mysqld: Shutdown complete


1
Qual è l'output di ls /var/lib/mysql/ib_logfile*?
Jobin

ls: impossibile accedere a / var / lib / mysql / ib_logfile *: nessun file o directory
simile

1
La tua directory / var / lib / mysql è scrivibile per mysql?
Jos

1
Sono un novizio di Linux ... Ho cambiato i permessi di / var / lib / mysql usando chmod 777 . Potete per favore suggerirmi come verificare se questo non è il modo giusto?
ananth

Risposte:


28

Apri un terminale ( Ctrl+ Alt+ t) e procedi come segue:

sudo service mysql stop
sudo rm /var/lib/mysql/ib_logfile0
sudo rm /var/lib/mysql/ib_logfile1

e commenta la riga record_buffer=64Min /etc/mysql/my.cnf [1]

e quindi riavviare msyql usando:

sudo service mysql restart

(Fonte)


1
Ho eseguito i comandi che hai citato. Su sudo service mysql restart, ha dato un messaggio di stop: istanza sconosciuta e prompt della shell non sono stati visualizzati (il riavvio è ancora in esecuzione da oltre 50 minuti)
ananth

1
Inoltre, ora il registro degli errori dice: -140425 15:09:11 InnoDB: il formato di file più alto supportato è Barracuda. 140425 15:09:12 InnoDB: in attesa dell'avvio dei thread in background 140425 15:09:13 InnoDB: 5.5.37 avviato; numero sequenza log 940942258188 140425 15:09:13 [ERRORE] / usr / sbin / mysqld: variabile sconosciuta 'record_buffer = 64M' 140425 15:09:13 [ERRORE] Annullamento 140425 15:09:13 InnoDB: avvio arresto ... 140425 15:09:14 InnoDB: spegnimento completato; numero sequenza log 940942258188 140425 15:09:14 [Nota] / usr / sbin / mysqld: spegnimento completato
ananth

No..ho fatto riavviare mysql sudo service.
ananth

Puoi provare a fare sudo service mysql start?
Jobin

Devo interrompere il processo di riavvio di mysql in esecuzione? Causerà qualche problema ??
ananth

9

Questo ha risolto il mio problema:

mkdir /var/run/mysqld

touch /var/run/mysqld/mysqld.sock

chown -R mysql /var/run/mysqld

/etc/init.d/mysql restart


1
dopo aver applicato questi passaggi il mio database viene cancellato. Ora cosa farò ??
Amit Yadav,

7

Ho risolto il problema nel modo seguente:

chown -R mysql:mysql /var/lib/mysql
mysql_install_db --user=mysql -ldata=/var/lib/mysql/

In un altro contesto, l'ho affrontato perché il demone mysql non è stato avviato. Quindi avvia il demone con il comando, mysqld startquindi prova ad avviare il servizio.


2

Ho avuto lo stesso messaggio di errore e lo stesso vuoto nei file di registro. Nel mio file di configurazione (my.cnf) avevo specificato che volevo usare le tabelle myisam, aggiungendo questa riga nella sezione [mysqld]:

default-table-type = myisam

Dopo aver aggiornato mysql sembra che ciò non causi l'avvio di mysql. Ho cambiato questo in:

default-storage-engine = myisam

e ora tutto funziona bene.


1

Anche aumentare la RAM disponibile aggiungendo nuovo spazio di Swap potrebbe aiutare. I passaggi sono qui

Assicurati di creare / scambiare file di dimensioni inferiori allo spazio disponibile mostrato da

df -h

Ad esempio, per me l'output di df- h era:

Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      7.8G  1.2G  6.3G  16% /
none            4.0K     0  4.0K   0% /sys/fs/cgroup
udev            492M   12K  492M   1% /dev
tmpfs           100M  336K   99M   1% /run

Quindi ho creato usando 2 G

sudo fallocate -l 2G /swapfile

E poi basta avviare il servizio

sudo /etc/init.d/mysql restart

Spero che sia di aiuto. Ti auguro il meglio.


1

La mia soluzione:

Controlla se in tutti /etc/rc1.d ... /etc/rc5.d lo script mysql inizia con S (Ex S10mysql) e non con K AS K10mysql.

Spiegazione: Il prefisso K viene caricato con stop, tipo di servizio kill; e il prefisso S inizia con il parametro start.

execute in terminal:   
(command        script action  runlevel)
---------------------------------------
sudo update-rc.d mysql enable  2
sudo update-rc.d mysql enable  3
sudo update-rc.d mysql enable  4
sudo update-rc.d mysql enable  5

1

Nel mio caso, è stato un problema di spazio. Controlla se ti rimane abbastanza spazio.

da /var/log/mysql/error.logho ricevuto alcuni suggerimenti da due righe:

2018-08-04T05:25:29.519139Z 0 [ERROR] InnoDB: Write to file ./ibtmp1failed at offset 3145728, 1048576 bytes should have been written, only 704512 were writt$
2018-08-04T05:25:29.519145Z 0 [ERROR] InnoDB: Error number 28 means 'No space left on device'

Ho potuto vedere che si tratta di un problema di spazio.

root@xxx:/home/user1# df -h
Filesystem                            Size  Used Avail Use% Mounted on
udev                                  477M     0  477M   0% /dev
tmpfs                                 100M   11M   89M  11% /run
/dev/mapper/server1--osticket--vg-root  8.3G  7.9G     0 100% /
tmpfs                                 497M     0  497M   0% /dev/shm
tmpfs                                 5.0M     0  5.0M   0% /run/lock
tmpfs                                 497M     0  497M   0% /sys/fs/cgroup
/dev/vda1                             472M  467M     0 100% /boot
tmpfs                                 100M     0  100M   0% /run/user/1000

Da qui, ho potuto vedere che non c'era abbastanza spazio sul server virtuale /dev/mapper/server1--osticket--vg-root 8.3G 7.9G 0 100% /. E ho pensato di migrare o aumentare l'unità virtuale, ma ho deciso di rimuovere prima i file non necessari.

Quindi, ho dovuto ripulire la cache e i file che non erano necessari:

#apt-get clean
#apt-get -f autoremove

Quindi, non dimenticare di rimuovere successivamente i file di registro corrotti mysql. Saranno generati di nuovo al riavvio di mysql

#service mysql stop
#cd /var/lib/mysql
#rm ib_logfile*
#service mysql start

Controlla il tuo servizio server mysql ed è probabilmente attivo e funzionante

root@server1-osticket:/var/lib/mysql# service mysql status
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: active (running) since Sat 2018-08-04 23:07:24 WAT; 7min ago
  Process: 1559 ExecStartPost=/usr/share/mysql/mysql-systemd-start post (code=exited, status=0/SUCCESS)
  Process: 1549 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (code=exited, status=0/SUCCESS)
 Main PID: 1558 (mysqld)
    Tasks: 29
   Memory: 280.3M
      CPU: 589ms
   CGroup: /system.slice/mysql.service
           └─1558 /usr/sbin/mysqld

Aug 04 23:07:19 server1-osticket systemd[1]: Starting MySQL Community Server...
Aug 04 23:07:24 server1-osticket systemd[1]: Started MySQL Community Server.
root@server1-osticket:/var/lib/mysql#

Caso chiuso. Spero possa essere d'aiuto.


0

Rimuovere il file /var/lib/mysql/.run-mysql_upgrade e dovrebbe iniziare

;)

"Con un grande potere viene una grande responsabilità"


0

Ho avuto questo problema quando ho impostato max_allowed_packet = 0.5Min /etc/mysql/my.cnf.

L'ho risolto cambiando max_allowed_packetin 1M.


0

Il seguente comando risolve il mio problema e mysql potrebbe iniziare dopo di esso (potrebbe essere utile in alcuni casi)

chown -R mysql: /var/lib/mysql
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.