Ho installato MySQL Server 5.5 su Ubuntu 12.04. Sto cercando di avviare il server MySQL su un altro file calzino. Di default MySQL funziona su /var/run/mysqld/mysqld.sock.
Sto cercando di eseguire lo stesso server su /var/run/mysqld/mysqld1.sock.
Per questo ho apportato le seguenti modifiche:
- Modifiche a /etc/mysql/my.cnf
[cliente] porta = 3306 socket = /var/run/mysqld/mysqld1.sock [Mysqld_safe] socket = /var/run/mysqld/mysqld1.sock bello = 0 [Mysqld] utente = mysql pid-file = /var/run/mysqld/mysqld.pid ** socket = /var/run/mysqld/mysqld1.sock** porta = 3306 basedir = / usr datadir = / var / lib / mysql tmpdir = / tmp lc-message-dir = / usr / share / mysql
Ho anche aggiunto la seguente riga a /etc/apparmor.d/usr/sbin.mysqld
/var/run/mysqld/mysqld1.sock w,
/var/run/mysqld/mysqld[1-9[.sock w,
Ho anche cambiato la proprietà per la directory / var / run / mysqld per l'utente mysql.
ls -lA / var / run / | grep mysqld
drwxrwxrwx 2 mysql mysql 40 dic 31 17:24 mysqld
Tuttavia quando provo ad avviare il server MySQL ricevo il seguente errore (come utente root)
$ mysqld --user = mysql --verbose 121231 18:40:56 [Nota] Il plug-in 'FEDERATED' è disabilitato. 121231 18:40:56 InnoDB: l'heap di memoria di InnoDB è disabilitato 121231 18:40:56 InnoDB: i mutex e gli rw_lock usano i builtin atomici GCC 121231 18:40:56 InnoDB: le tabelle compresse usano zlib 1.2.3.4 121231 18:40:56 InnoDB: inizializzazione pool buffer, dimensione = 128.0M 121231 18:40:56 InnoDB: inizializzazione completata del pool di buffer 121231 18:40:56 InnoDB: il formato file più supportato è Barracuda. 121231 18:40:57 InnoDB: in attesa dell'avvio dei thread in background 121231 18:40:58 InnoDB: 1.1.8 avviato; numero sequenza log 1595685 121231 18:40:58 [Nota] Nome host server (indirizzo bind): '127.0.0.1'; porto: 3306 121231 18:40:58 [Nota] - '127.0.0.1' si risolve in '127.0.0.1'; 121231 18:40:58 [Nota] Presa del server creata su IP: '127.0.0.1'. ** `121231 18:40:58 [ERRORE] Impossibile avviare il server: collegamento su socket unix: autorizzazione negata` ** 121231 18:40:58 [ERRORE] Hai già un altro server mysqld in esecuzione sul socket: /var/run/mysqld/mysqld1.sock? 121231 18:40:58 [ERRORE] Interruzione ** 121231 18:40:58 InnoDB: avvio arresto ... 121231 18:40:58 InnoDB: spegnimento completato; numero sequenza log 1595685 121231 18:40:58 [Nota] mysqld: spegnimento completato
Se avvio il server con il file socket predefinito, sono in grado di avviare il server. Ho cercato su Google questo problema, ma ho trovato solo soluzioni che suggeriscono che si tratti di un problema di autorizzazioni. Tuttavia le autorizzazioni sembrano soddisfacenti. Alcuni hanno suggerito che AppArmor potrebbe essere una causa, ma ho verificato che anche lo snippet sia incollato sopra.
Qualcuno può fornire alcuni indizi?
[MODIFICARE]
Vedo il seguente output in /var/log/syslog
.
2 gen 12:09:34 praveshp-lt mysqld: 130102 12:09:34 [Nota] Il plug-in 'FEDERATED' è disabilitato. 2 gen 12:09:34 praveshp-lt mysqld: 130102 12:09:34 InnoDB: l'heap di memoria di InnoDB è disabilitato 2 gen 12:09:34 praveshp-lt mysqld: 130102 12:09:34 InnoDB: mutex e rw_locks usano i builtin atomici GCC 2 gen 12:09:34 praveshp-lt mysqld: 130102 12:09:34 InnoDB: le tabelle compresse usano zlib 1.2.3.4 2 gen 12:09:34 praveshp-lt mysqld: 130102 12:09:34 InnoDB: inizializzazione pool buffer, dimensione = 128.0M 2 gen 12:09:34 praveshp-lt mysqld: 130102 12:09:34 InnoDB: inizializzazione completata del pool di buffer 2 gen 12:09:34 praveshp-lt mysqld: 130102 12:09:34 InnoDB: il formato file più supportato è Barracuda. 2 gen 12:09:35 praveshp-lt mysqld: 130102 12:09:35 InnoDB: in attesa dell'inizio dei thread in background 2 gen 12:09:36 praveshp-lt mysqld: 130102 12:09:36 InnoDB: 1.1.8 avviato; numero sequenza log 1595685 2 gen 12:09:36 praveshp-lt mysqld: 130102 12:09:36 [Nota] Nome host server (indirizzo di bind): '127.0.0.1'; porto: 3307 2 gen 12:09:36 praveshp-lt mysqld: 130102 12:09:36 [Nota] - "127.0.0.1" si risolve in "127.0.0.1"; 2 gen 12:09:36 praveshp-lt mysqld: 130102 12:09:36 [Nota] Presa del server creata su IP: "127.0.0.1". 2 gen 12:09:36 praveshp-lt mysqld: 130102 12:09:36 [ERRORE] Impossibile avviare il server: collegamento su socket unix: autorizzazione negata 2 gen 12:09:36 praveshp-lt mysqld: 130102 12:09:36 [ERRORE] Hai già un altro server mysqld in esecuzione sul socket: /var/run/mysqld/mysqld1.sock? 2 gen 12:09:36 praveshp-lt mysqld: 130102 12:09:36 [ERRORE] Interruzione 2 gen 12:09:36 praveshp-lt mysqld: 2 gen 12:09:36 praveshp-lt mysqld: 130102 12:09:36 InnoDB: avvio arresto ... 2 gennaio 12:09:36 kernel praveshp-lt: [7060.098580] tipo = 1400 audit (1357108776.036: 33): apparmor = "DENIED" operazione = "mknod" parent = 6702 profile = "/ usr / sbin / mysqld" name = "/run/mysqld/mysqld1.sock" pid = 7039 comm = "mysqld" request_mask = "c" denied_mask = "c" fsuid = 116 ouid = 116 2 gen 12:09:36 praveshp-lt mysqld: 130102 12:09:36 InnoDB: spegnimento completato; numero sequenza log 1595685 2 gen 12:09:36 praveshp-lt mysqld: 130102 12:09:36 [Nota] / usr / sbin / mysqld: spegnimento completato
Dice che l'autorizzazione è stata negata, tuttavia sembra che io abbia impostato le autorizzazioni giuste.
/etc/apparmor.d/usr.sbin.mysqld
C'è un confronto tra la vecchia e la nuova versione qui: bugs.launchpad.net/ubuntu/+source/mysql-5.1/+bug/876268/…
/usr/local/mysql
e/tmp
. La necessità di essere almeno 775. 2. L'autorizzazione per la directory del database mysql nella/var/lib/
cartella dovrebbe esseremysql:root
(chown mysql:root mysql
)