我已經將我的Web應用程序上傳到OpenShift。 我的應用程序使用PHP和MySQL Cartridges。在openshift中使用PHP + MySQL時,訪問被拒絕用戶'@'localhost'(使用密碼:NO)
我創建了一些使用PHPmyAdmin的數據庫(通過openshift Web界面)。每個數據庫都有自己獨特的名字。 在我的PHP代碼我初始化我的MySQL數據庫的一個以這種方式連接:上表
$mysql_database=<some data base>;
$connection = mysqli_connect(getenv('OPENSHIFT_MYSQL_DB_HOST'), getenv('OPENSHIFT_MYSQL_DB_USERNAME'), getenv('OPENSHIFT_MYSQL_DB_PASSWORD'), "$mysql_database", getenv('OPENSHIFT_MYSQL_DB_PORT')) or die("Error: " . mysqli_error($connection));
mysql_set_charset("utf8", $connection);
然後在其他地方我在做什麼,從我的PHP代碼中的一些查詢(如SELECT,UPDATE等)內我連接到的數據庫。例如:
$query_run=mysql_query("SELECT * from `$some_table` WHERE `id`='$id'")
本身並沒有任何東西連接失敗,但是我所有的查詢失敗上:
Access denied for user ''@'localhost' (using password: NO)
當我手動發出這些命令在實際的機器一切都正常運行。所以此工程:ssh方式連接到使用膩子我的機器,並做:
mysql -u $OPENSHIFT_MYSQL_DB_USERNAME -h $OPENSHIFT_MYSQL_DB_HOST -P $OPENSHIFT_MYSQL_DB_PORT -p <some data base>
mysql>SELECT * from `<some table>` WHERE `id`='<some id>'
我並沒有改變任何東西的安全設置,也沒有改變我產生了我對MySQL的行爲,該用戶名/密碼。
此外,我的本地應用程序在xampp Apache + MySQL服務器上運行時,一切都運行良好。
有什麼想法?
'var_dump(getenv('OPENSHIFT_MYSQL_DB_HOST'))'說什麼? – Naumov
顯示正確的主機IP:「127.2.20.2」 – user3444042
我知道你連接到'mysqli',但使用'mysql'' mysql_query'使用正確的擴展名 – Naumov