Почему в команде msqldump вместо username работает имя от БД?

362
21 февраля 2017, 16:04

Всем доброго времени суток, господа. Сегодня столкнулся с проблемой создания дампа, зайдя под своим рутом через ssh сделал команду вида

mysqldump -u USER -p DATABASE > /var/dump.sql

Введя вместо user моего созданного пользователя на сервере centos 6 выдается ошибка:

mysqldump: Got error: 1044: "Access denied for user 'USERsNAME'@'localhost' to database 'nameDATABASE '" when selecting the database

В итоге вместо user подставил имя бд и все заработало. Думаю это и есть данные для входа, которые нужны. Исходя из этого опыта при попытке создать подключение на c# использовал имя БД, но получаю тоже самое сообщение:

Authentication to host 'myhost' for user 'DATABASEsNAME' using method 'mysql_native_password' failed with message: Access denied for user 'DATABASEsNAME'@'176.59.212.182' (using password: YES)

Код c#:

string serverName = "myHost";
string userName = "DATABASEsNAME";
string dbName = "DATABASEsNAME";
string port = "3306";
string password = "myPassWord";
string connection = "server=" + serverName +
            ";user=" + userName +
            ";database=" + dbName +
            ";port=" + port +
            ";password=" + password + ";";
 MySqlConnection conn = new MySqlConnection(connStr);
 conn.Open();

На севере в конфиге закомментировал строку skip-networking для удаленного подключения. До этого стояла панель ispManager. Подскажите, пожалуйста, в чем загвоздка.

Answer 1

Вообщем, да, нужно было дать права пользователю. До этого я пробовал это сделать, но не получалось, потому что не под рутом заходил, но и под рутом не с первого раза зашел, оказалось пароля на mysql -u root -p не было, поэтому зашел только после команды mysql -u root, затем дал все привилегии для username@176.59.212.182 командами:

CREATE USER username@176.59.212.182 IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON *.* TO 'username'@'176.59.212.182' WITH GRANT OPTION;

После этого в c# ввёл все, как и положено.

string serverName = "myHost";
string userName = "username";
string dbName = "DATABASEsNAME";
string port = "3306";
string password = "Database's PassWord";
string connection = "server=" + serverName +
            ";user=" + userName +
            ";database=" + dbName +
            ";port=" + port +
            ";password=" + password + ";";
 MySqlConnection conn = new MySqlConnection(connStr);
 conn.Open();

Чтобы разрешить удаленное подключение любым ip адресам прописать:

'username'@'%'
READ ALSO
Приведение C# datetime к ms sql datetime

Приведение C# datetime к ms sql datetime

Проект на ASPnet MVC, хочу привязать к полю текущую дату,реализую через контроллер, как можно привести datetime C# {dd

346
Xamarin BOOT_COMPLETED и автоматический перезапуск

Xamarin BOOT_COMPLETED и автоматический перезапуск

Есть приложение Xamarin с премишенами:

314
Маршрутизация в ASP MVC

Маршрутизация в ASP MVC

Есть контроллер, в котором определен метод GetAllPurchaseList, при переходе на него, система ищет представление с именем GetAllPurchaseListcshtml

314
Эквиваленты ли следующие операторы?

Эквиваленты ли следующие операторы?

Допустим у меня есть инициализированная строка string sЯвляются ли следующие операторы эквивалентными в плане поведения? Генерируется ли разный...

337