Instalarea și configurarea MySQL FreeBSD

  • Ce este nou în MySQL 5.6
  • Instalarea MySQL 5.6 pe FreeBSD
  • Actualizarea MySQL
  • MySQL în FreeBSD - baza de cunoștințe
  • erori MySQL și soluțiile lor
  • Link-uri utile

Ce este nou în MySQL 5.6

Instalarea MySQL 5.6 în FreeBSD, de obicei, se execută fără probleme, și aici este o actualizare dimpotrivă, ascunde multe probleme ascunse (MySQL - instalare și configurare în Windows). Toate exemplele descrise în articol sunt testate pe FreeBSD 8.4.

Instalarea MySQL 5.6 pe FreeBSD

În mod normal, MySQL pentru a instala FreeBSD din porturile, dar dacă serverul utilizează DirectAdmin, apoi folosind un programe CustomBuild de upgrade (/ usr / local / DirectAdmin / custombuild). Înainte de a instala, este recomandabil să se actualizeze copac porturi, cum se face acest lucru este descris aici: lucrul cu porturile din FreeBSD. atunci când se utilizează DA, /usr/local/directadmin/custombuild/options.conf trebuie să reconfigureze și upgrade script-urile de instalare MySQL ./build actualiza comanda.

Pre-instalat, puteți configura baza de date în /etc/make.conf, dar nu neapărat. Despre actualizarea versiuni mai vechi ale bazei de date MySQL 5.6 este scris mai jos.

DirectAdmin MySQL instalat atunci când instalați panoul de DA și nu necesită instalare de la zero, iar procesul de actualizare este descris în secțiunea „Actualizarea MySQL“.

Ustvnovka MySQL 5.6 porturi FreeBSD

Mergând la porturile bazei de date director
# Cd / usr / porturi / baze de date /

Selectați versiunea MySQL disponibile
# Find. -name 'mysql * -Server'
./ Mysql56-server
./ Mysql50-server
./ Mysql51-server
./ Mysql55-server
./ Mysql41-server

Mergând la directorul la portul MySQL srver 5.6
# Cd / usr / porturi / baze de date / mysql56-server

Set mysql56-server
# Make install curat

căile de upgrade
#rehash

Copiați fișierul de configurare principal MySQL
# Cp /usr/local/share/mysql/my-small.cnf /etc/my.cnf

Crearea bazei de date Halyards implicite (necesare pentru serverul MySQL)
# Cp / usr / local / mysql / script / mysql_install_db / usr / local / mysql / mysql_install_db
# / Usr / local / mysql / mysql_install_db

Setați permisiunile pe baza de date MySQL
# Chown -R mysql: mysql / var / db / mysql

Adăugați MySQL de pornire automată pe FreeBSD
'Mysql_enable = "DA",' # Echo >> /etc/rc.conf

Pornirea serverului MySQL
# /usr/local/etc/rc.d/mysql-server de start

Setați o parolă pentru MySQL rădăcină
# Mysqladmin -u parola de root 'parolă nouă pentru root'

Conectarea la baza de date
# Mysql -u -p rădăcină
Introduceți parola: nouă parolă pentru root

Trecerea la MySQL bază de date de configurare
mysql> utilizarea mysql

Ștergeți toți utilizatorii care nu sunt necesare că există doar o singură rădăcină cu un nou, trebuie doar să setați o parolă
! Mysql> DELETE FROM utilizator WHERE user = 'root';

În această configurație inițială și instalarea MySQL 5.6 este completă. Dacă există o eroare sau serverul MySQL nu pornește, consultați „Informații utile privind MySQL“ în timpul procesului de instalare, care este disponibil în acest articol.

Actualizarea MySQL

Înainte de a face upgrade la MySQL 5.6 în FreeBSD este necesar pentru a crea o copie de rezervă a tuturor bazelor de date. Acest lucru se poate face în mai multe moduri, cum ar fi pur și simplu mutarea bazei de date (calea specificată în secțiunea „Informații utile pentru MySQL“ de mai jos) în directorul acasă, după oprirea serverul de baze de date. DirectAdmin au un mod de a personaliza actualizarea, astfel încât înainte de a se salvează automat o copie de rezervă a bazei de date - este responsabil pentru cele două directive în /usr/local/directadmin/custombuild/option.conf: mysql_backup = da, mysql_backup_dir = / usr / local / DirectAdmin / custombuild / mysql_backups.

procesul de actualizare în sine este redusă pentru a elimina versiunea veche a portului MySQL și instalarea celei noi. Procesul de instalare este descris în detaliu în articolul „Instalarea MySQL 5.6 în FreeBSD“.

Scoaterea vechea versiune a MySQL, set de porturi

# Cd / usr / porturi / baze de date / mysql50-server /
# Asigurați-vă deinstall
# Cd / usr / porturi / baze de date / mysql50-client /
# Asigurați-vă deinstall

După instalarea cu succes a noii versiuni, dacă este necesar, trebuie să se întoarcă directorul care conține tabele de date MySQL versiunea veche (serverul MySQL în acest moment trebuie să fie oprit). În orice caz, nu este necesar să se întoarcă la directorul cu fișierele din noua versiune a fișierelor MySQL în directorul rădăcină, cum ar fi :. Ib_logfile0, ib_logfile1 etc După revenirea tabelelor trebuie să executați mysql_upgrade de utilitate. ceea ce va avea drept rezultat un tabel sistem „mysql“ la noua versiune a serverului MySQL (de exemplu, se adaugă versiunea 5.5 noi coloane în tabelele de sistem, în ceea ce privește versiunea 5.1, structura tabelelor 5.5 și 5.6, precum și, diferit) și a alerga MySQL server.

Dacă nu executați mysql_upgrade, cum ar fi versiunea de upgrade 5.1-5.5 serverul de baze de date va funcționa, dar cererea GRANT ALL ON * PRIVILEGII. * LA 'superutilizator' @ 'localhost' CU GRANT OPTION; nu Acces interzis pentru „root“ @ „localhost“ utilizator (folosind parola: DA), datorită faptului că tabelele oficiale MySQL nu conțin coloanele necesare. De asemenea, nu există alte vizibile la prima vedere, o eroare pe baza de date.

Când se folosește actualizarea DA efectuată comanda / usr / local / DirectAdmin / custombuild / build mysql d. În acest caz, de asemenea, la fel ca în actualizarea porturilor, trebuie să curățați mai întâi în sus sau mutați directorul / home / mysql /, pentru a lansa o versiune nouă și asigurați-vă că funcționează, și după aceea datele de returnare în baza de date.

După actualizări MySQL nevoie pentru a actualiza script-uri utilizate pentru conectarea la o bază de date în PHP. Utilizatorii pot actualiza pur și simplu DA în ansamblu php: / usr / local / DirectAdmin / custombuild / php build d.

MySQL în FreeBSD - baza de cunoștințe

Script-uri Start / Stop MySQL:

# /usr/local/etc/rc.d/mysql-server de start
# /usr/local/etc/rc.d/mysql-server opri

Numele DA pentru a porni și opri script-uri MySQL diferă:
/usr/local/etc/rc.d/mysqld începe
/usr/local/etc/rc.d/mysqld opri

A se vedea, în cazul în care rulează mysqd: # ps ax | grep MySQL

Un fișier jurnal implicit este situat aici MySQL-Server: /var/db/mysql/HOSTNAME.err, DirectAdmin schimbă calea spre viroaga pe /home/mysql/HOSTNAME.err. HOSTNAME - server de nume de gazdă pe care MySQL.

Configurarea locației de stocare jurnalul de interogare și jurnalul poate încetini interogare utilizând directiva log-ieșire în my.cnf. Dacă specificați un jurnal de ieșire = tabel, apoi jurnalele vor fi stocate într-o bază de date numită „MySQL“ și tabelele corespunzătoare: general_log și slow_log.

Activați și dezactivați MySQL jurnal principal, care va fi înregistrată absolut toate cererile nu poate repornirea serverului la baza de date:

SET general_log GLOBAL = 'ON';
SET general_log GLOBAL = 'OFF';

Rețineți că încărcarea serverului log interogări MySQL va fi razrostatsya foarte rapid, așa că lăsați-l pentru o lungă perioadă de timp nu este necesar.

Calea către baza de date. / Var / db / mysql / (DirectAdmin - / home / MySQL /).

Calea către fișierul de configurare MySQL my.cnf. /etc/my.cnf.

Adăugați un utilizator cu acces complet:

CREATE USER 'superutilizator' @ 'localhost' IDENTIFICAT DE 'TRECERE';
GRANT ALL ON * PRIVILEGII. * LA 'superutilizator' @ 'localhost' CU GRANT OPTION;
# TRECERE - ar trebui să fie înlocuită cu o parolă pentru utilizator superutilizator
# Accesați superutilizatorul utilizator este numai de la computerul local
# Pentru a deschide accesul la superutilizator de la rețea, trebuie să adăugați un utilizator nou
# Și înlocuiți localhost%

Schimbarea / restaura parola de root în MySQL, fără a avea rezultate academice cu ALL PRIVILEGII:

# Mysqladmin -u parola de root 'parolă nouă'

Pentru a schimba parola de root, puteți utiliza un alt mod: începe MySQL cu posibilitatea de a interzice controlului de acces, conectați ca root fără o parolă și de a schimba parola unui interogare SQL (de exemplu, pentru baze de date instalate Direktadminom, dar poate fi ușor modificat prin utilizarea materialelor din această secțiune și pentru MySQL set de porturi):

# /usr/local/etc/rc.d/mysqld opri
# Cd / usr / local / mysql / bin /
# ./mysqld_safe --skip-grant-mese
# Mysql -uroot

utilizarea MySQL
UPDATE utilizator SET parola = PAROLA # 40; „Parola nouă“ # 41; UNDE utilizator = 'root';
PRIVILEGII Flush;
părăsi

Acum vom găsi procesele MySQL numere PID
# Ps topor | grep MySQL
1 0 69349 I: 00.01 / bin / sh ./mysqld_safe --skip-grant-mese
1 0 69583 I: 00.09 / usr / local / mysql / bin / mysqld --basedir = / usr / local / mysql --datadir = / usr / local / mysql / date --plugin-dir = / usr / local
69787 1 S + 0: 00,00 grep mysql

În continuare, trebuie să se oprească mai întâi procesul ./mysqld_safe --skip-grant-mese, apoi / usr / local / mysql / bin / mysqld
# Kill -9 69349
# Kill -9 69583
Numerele de proces în sistemul dvs. va fi diferit!

Dacă te oprești la început nu este un proces - / usr / local / mysql / bin / mysqld, acesta nu se va opri, ci pur și simplu reporneste, și deci va fi pe termen nelimitat, până când procesul ./mysqld_safe --skip-grant-tabelele vor fi oprite.

erori MySQL și soluțiile lor

Nu se poate porni serverul. Legați pe soclu unix: Permission denied

MySQL ruleaza, se execută de câteva secunde și apoi se oprește. MySQL log detectate linie cu astfel de erori:

[EROARE] Nu se poate porni serverul. Legați pe soclu unix: Permission denied
[EROARE] Ai deja un alt server mysqld care rulează pe soclu: /tmp/mysql.sock?
[EROARE] Intrerup

un mesaj de eroare raportează că priza de acces MySQL este interzisă. Pentru a partaja, trebuie să modificați permisiunile unui director / tmp:

# Chmod chmod 1777 / tmp
Vizualizați modificările
# Ls -ld / tmp
roată rădăcină drwxrwxrwt 512 / tmp

Această eroare poate apărea după transferul FreeBSD de la un HDD la altul. De obicei, atunci când un astfel de transfer, directorul / tmp nu este copiat, iar când montarea în noul sistem uita pentru a configura drepturi de acces.

Cum de a opri mysqld_safe?

Pentru a opri mysqld_safe nevoie pentru a găsi PID-ul script-ul, care rulează mysql, și numai apoi opri procesul de MySQL, sau ucide comanda -9 proces PID nu va fi oprit și repornit, și așa mai departe ad infinitum. Descriere proces mysqld_safe oprire, vezi „Informații utile pentru MySQL“ și subsecțiunea „Modificare / restaura parola de root în MySQL“.

Link-uri utile