2015-07-24 4 views
0

Я мог бы успешно подключиться к серверу и войти в базу данных MySQL. Но теперь мне нужно запустить несколько SQL-запросов в таблицах базы данных, но столкнувшись с ошибкой: ERROR 1045 (28000): доступ запрещен для пользователя «root» @ «localhost» (с использованием пароля: YES).не удалось запустить SQL-запросы в MySQL, используя phpseclib

Я не уверен, что SQL-запросы имеют правильный синтаксис? Также мне нужно подключаться к серверу каждый раз, когда мне нужно запускать SQL-запросы? Пожалуйста, предоставьте мне некоторые материалы. Благодарю.

/* SUCCESS */ 
$ssh = new Net_SSH2('XX.XXX.XX.XXX'); 
    if (!$ssh->login('root', 'password')) { 
     exit('Login Failed'); 
     } 

echo $ssh->exec('pwd'); 

    /* SUCCESS */ 
    if (!$ssh->exec('mysql -h localhost -u root -pDataBaseName \r\n')){ 
     exit('Login to MySQL Failed'); 
    }else{ 
    echo "Login to MySQL Success"; 
    } 

    /* ERROR - facing error in this code*/ 
    echo $ssh->exec('mysql -h localhost -u root -pDataBaseName -e "SELECT * FROM cmu_util_all"'); 
+0

это потому, что вы можете входить неправильное имя пользователя или пароль. –

+0

Зачем вам использовать exec для запуска MySQL-запросов? – Kyle

+0

@Kyle: Он хочет, чтобы соединение между сервером БД и веб-сервером было зашифровано. SSH (хотя и необычный) не самый худший способ сделать это. –

ответ

0

Интересное использование php и mysql (конечно, нетрадиционное). Существует более простой способ: Читайте на PDO: http://php.net/manual/en/ref.pdo-mysql.php О текущем выпуске входа:

-pDataBaseName 

должно быть:

-pPassword DataBaseName 
0

Это не ответ на вопрос - это уже дано (-p). Но, слишком долго для комментариев, позвольте мне подробно остановиться на проблемах:

При каждом запуске скрипта вы подключаете новый SSH-туннель, это довольно тяжелый процессор, но в большей степени латентный.

Так что я рекомендую вам попробовать параметр SSH -L и запустить общесистемного ssh -L 127.0.0.1:3306:127.0.0.1:3306 [email protected], а затем использовать стандартные инструменты MySQL (например, PDO) для подключения к уже туннелю MySQL на 127.0.0.1.

ум жестким: Вы должны использовать 127.0.0.1, не localhost, так как это попытка будет сокет Unix, который, очевидно, не будет работать

Смежные вопросы