Pokud máte úplný přístup ke svému serveru (vyžadují práva root):
Krok 1:Upravte soubor my.cnf (obvykle se nachází v /etc)
Najděte následující řádek:[mysqld]
a ujistěte se, že řádek skip-networking
je okomentován (nebo odstranit řádek) a přidejte následující řádek:
bind-address=YOUR-SERVER-IP
Pokud je například IP vašeho serveru MySQL 66.166.170.28, celý blok by měl vypadat následovně:
[mysqld]
user = mysql
pid-file = /var/run/mysqld/mysqld.pid
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
language = /usr/share/mysql/English
bind-address = 66.166.170.28
# skip-networking
.......
Kde
- bind-address :IP adresa, na kterou se má navázat.
- přeskočit síť :Neposlouchejte připojení TCP/IP vůbec. Veškerá interakce s mysqld musí být provedena prostřednictvím Unixových soketů. Tato možnost je vysoce doporučena pro systémy, kde jsou povoleny pouze místní požadavky. Vzhledem k tomu, že potřebujete povolit vzdálené připojení, měl by být tento řádek odstraněn z my.cnf nebo jej uveďte do stavu komentáře.
Krok 2:Udělte přístup všem hostitelům
Spusťte MySQL monitor pomocí tohoto příkazu:mysql
nebo /usr/local/mysql/bin/mysql
. Vaše výzva shellu by nyní měla vypadat takto:mysql>
. Spusťte tento příkaz:
GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY "PASSWORD";
Kde:
- USERNAME je uživatelské jméno, které používáte při připojování pomocí vašeho php skriptu.
- HESLO je heslo, které používáte při připojování.
Nyní musíte vyprázdnit oprávnění MySQL. Spusťte tento příkaz:
FLUSH PRIVILEGES;
Spusťte tento příkaz pro ukončení MySQL:
exit;
Krok 3:restartujte démona mysql
/etc/init.d/mysqld restart
nebo
/etc/init.d/mysql restart
v závislosti na tom, jaké linuxové distro aktuálně běží na vašem serveru.