Mysql добавление пользователя для удаленного доступа


Я создал С password 'password. Но я не могу связаться с:

mysql_connect('localhost:3306', 'user', 'password');

когда я создал пользователя user@'localhost', я смог подключиться. Зачем? Разве " % " не означает от любого хоста?

3 102

3 ответа:

для удаленного подключения вы должны иметь MySQL привязать порт 3306 к IP-адресу вашей машины в моем.cnf. Затем вы должны создать пользователя как в localhost, так и в подстановочном знаке " % " и предоставить разрешения на все БД как таковые . см. ниже:

мой.cnf (my.ini на windows)

#Replace xxx with your IP Address 
bind-address        = xxx.xxx.xxx.xxx

затем

CREATE USER 'myuser'@'localhost' IDENTIFIED BY 'mypass';
CREATE USER 'myuser'@'%' IDENTIFIED BY 'mypass';

затем

GRANT ALL ON *.* TO 'myuser'@'localhost';
GRANT ALL ON *.* TO 'myuser'@'%';

В зависимости от вашей ОС вам может потребоваться открыть порт 3306, чтобы разрешить удаленные подключения.

для какой БД является пользователь? посмотрите на этот пример

mysql> create database databasename;
Query OK, 1 row affected (0.00 sec)
mysql> grant all on databasename.* to cmsuser@localhost identified by 'password';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

таким образом, чтобы вернуться к вам вопрос "%" оператор означает все компьютеры в вашей сети.

как показывает aspesa, я также уверен, что вам нужно создать или обновить пользователя. ищите всех своих пользователей mysql:

SELECT user,password,host FROM user;

как только вы настроили своего пользователя, вы должны иметь возможность подключиться следующим образом:

mysql -h localhost -u gmeier -p

надеюсь, что это помогает

следуйте инструкциям (шаги с 1 по 3 не нужны в windows):

  1. найти конфигурацию mysql для редактирования:

    / etc / mysql / my.cnf (Mysql 5.5)

    / etc / mysql / conf.d / mysql.cnf (Mysql 5.6+)

  2. найти bind-address=127.0.0.1 в config измените файл bind-address=0.0.0.0 (вы можете установить адрес привязки к одному из ваших интерфейсных IP-адресов или, как я, использовать 0.0.0.0)

  3. перезапустить службу mysql приставка: service restart mysql

  4. создайте пользователя с безопасным паролем для удаленного подключения. Для этого выполните следующую команду в mysql (если вы являетесь пользователем linux для достижения консоли mysql run mysql и если вы установите пароль для запуска root mysql -p):

    GRANT ALL PRIVILEGES 
     ON *.* TO 'remote'@'%' 
     IDENTIFIED BY 'safe_password' 
     WITH GRANT OPTION;`
    

теперь у вас должен быть пользователь с именем user и пароль safe_password С возможностью удаленного подключения.