Mysql добавление пользователя для удаленного доступа
Я создал С password 'password
. Но я не могу связаться с:
mysql_connect('localhost:3306', 'user', 'password');
когда я создал пользователя user@'localhost'
, я смог подключиться. Зачем? Разве " % " не означает от любого хоста?
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):
найти конфигурацию mysql для редактирования:
/ etc / mysql / my.cnf (Mysql 5.5)
/ etc / mysql / conf.d / mysql.cnf (Mysql 5.6+)
найти
bind-address=127.0.0.1
в config измените файлbind-address=0.0.0.0
(вы можете установить адрес привязки к одному из ваших интерфейсных IP-адресов или, как я, использовать 0.0.0.0)перезапустить службу mysql приставка:
service restart mysql
создайте пользователя с безопасным паролем для удаленного подключения. Для этого выполните следующую команду в mysql (если вы являетесь пользователем linux для достижения консоли mysql run
mysql
и если вы установите пароль для запуска rootmysql -p
):GRANT ALL PRIVILEGES ON *.* TO 'remote'@'%' IDENTIFIED BY 'safe_password' WITH GRANT OPTION;`
теперь у вас должен быть пользователь с именем
user
и парольsafe_password
С возможностью удаленного подключения.