Я создал пользователя user@'%'
с расширением password 'password
. Но не могу подключиться к:
mysql_connect('localhost:3306', 'user', 'password');
Когда я создал пользователя user@'localhost'
, я смог подключиться. Зачем? Разве "%" не означает от ЛЮБОГО хоста?
mysql
remote-access
user2333586
источник
источник
Ответы:
Для удаленного подключения MySQL должен привязать порт 3306 к IP-адресу вашего компьютера в my.cnf. Затем вы должны создать пользователя как в локальном хосте, так и в подстановочном знаке «%» и предоставить разрешения для всех БД как таковых . Увидеть ниже:
my.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'@'%'; flush privileges;
В зависимости от вашей ОС вам может потребоваться открыть порт 3306, чтобы разрешить удаленные подключения.
источник
mysql.default_port = <private instance port>
в моем php.ini, а затем использованные127.0.0.1
для моего имени хоста dbСледуйте инструкциям (шаги с 1 по 3 в Windows не требуются):
Найдите конфигурацию mysql для редактирования:
Найдите
bind-address=127.0.0.1
в файле конфигурации изменениеbind-address=0.0.0.0
(вы можете установить адрес привязки для одного из IP-адресов вашего интерфейса или, как я, использовать 0.0.0.0)Перезапустите службу mysql, запущенную на консоли:
service restart mysql
Создайте пользователя с безопасным паролем для удаленного подключения. Для этого выполните следующую команду в mysql (если вы являетесь пользователем Linux, чтобы запустить консоль mysql,
mysql
и если вы установили пароль для запуска rootmysql -p
):GRANT ALL PRIVILEGES ON *.* TO 'remote'@'%' IDENTIFIED BY 'safe_password' WITH GRANT OPTION;`
Теперь у вас должен быть пользователь с именем
user
и паролемsafe_password
с возможностью удаленного подключения.источник
для какой БД находится пользователь? посмотри на этот пример
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;
как только вы настроите своего пользователя, вы сможете подключиться следующим образом:
Надеюсь, это поможет
источник
code
mysql_connect ('localhost: 3306', 'пользователь', 'пароль');code