Oprávnění MySQL jsou založena na adrese, ke které se připojují, stejně jako na uživateli. Takže [email protected] a [email protected] bude mít dvě samostatné sady oprávnění. Změna localhost na 127.0.0.1, jak je uvedeno num8er, bude pravděpodobně fungovat, pokud jsou váš kód a databáze na stejném serveru.
Pokud máte terminálový přístup ke schránce, kde je vaše php, můžete se zkusit připojit přímo a vyloučit cokoli společného s php pomocí tohoto:
mysql -h 10.4.1.163 -u root -p[pass] database -e "SHOW TABLES"
Všimněte si, že mezi -p
není mezera a heslo. Pokud uspějete, získáte seznam tabulek v database
.
Chcete-li udělit přístup jiným uživatelům nebo pro jiný název hostitele/IP, budete chtít spustit něco v tomto smyslu:(ačkoli byste skutečně měli vytvořit samostatného uživatele s omezenějšími oprávněními na základě vašich požadavků).
GRANT ALL PRIVILEGES ON `database`.* TO 'root'@'10.4.1.163';
Podívejte se na dokumenty o GRANT MySQL zde - http://dev.mysql .com/doc/refman/5.7/en/grant.html
Na okraj – prosím, prosím, nečerpejte do dotazu jen stará data, aniž byste alespoň použili mysql_real_escape_string
(http://php.net/manual/en/ function.mysql-real-escape-string.php
) na to předem. Můžete se také podívat do PDO (http://php. net/manual/en/book.pdo.php
), který je obecně preferován před již zastaralým mysql_
funkce