Mysql
 sql >> база данни >  >> RDS >> Mysql

Отдалечени връзки Mysql Ubuntu

За да изложите MySQL на нещо различно от localhost, ще трябва да имате следния ред

За mysql версия 5.6 и по-долу

некомментиран в /etc/mysql/my.cnf и присвоен на компютрите ви IP адрес, а не обратна връзка

За mysql версия 5.7 и по-нова

некоментирано в /etc/mysql/mysql.conf.d/mysqld.cnf и присвоен на компютрите ви IP адрес, а не обратна връзка

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

Или добавете bind-address = 0.0.0.0 ако не искате да посочите IP

След това спрете и рестартирайте MySQL с новия запис my.cnf. След като стартирате, отидете на терминала и въведете следната команда.

lsof -i -P | grep :3306

Това трябва да се върне нещо подобно с действителния ви IP в xxx

mysqld  1046  mysql  10u  IPv4  5203  0t0  TCP  xxx.xxx.xxx.xxx:3306 (LISTEN)

Ако горното изявление се върне правилно, тогава ще можете да приемате отдалечени потребители. Въпреки това, за да се свърже отдалечен потребител с правилните привилегии, трябва този потребител да бъде създаден както в localhost, така и в „%“, както е в.

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; 
EXIT;

Ако нямате същия потребител, създаден както по-горе, когато влезете локално, може да наследите основни привилегии на localhost и да имате проблеми с достъпа. Ако искате да ограничите достъпа на myuser, тогава ще трябва да прочетете синтаксиса на израза GRANT ТУК Ако преминете през всичко това и все още имате проблеми, публикувайте допълнителен изход за грешка и съответните редове my.cnf.

ЗАБЕЛЕЖКА:Ако lsof не се върне или не бъде намерен, можете да го инсталирате ТУК въз основа на вашата Linux дистрибуция. Не се нуждаете от lsof, за да накарате нещата да работят, но е изключително удобен, когато нещата не работят според очакванията.

АКТУАЛИЗАЦИЯ:Ако дори след добавяне/промяна на bind-address в my.cnf не работи, след това отидете и го променете на мястото, където първоначално е декларирано:

/etc/mysql/mariadb.conf.d/50-server.cnf


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Какъв е еквивалентът на SQL Server на ELT() в MySQL?

  2. Mysql, за да изберете месечен запис, дори ако данни не съществуват

  3. Как да получите времето от низ в MySQL

  4. Синтаксис на SQL SELECT – Изброен от СУБД

  5. MySQL - Избиране на данни от множество таблици, всички със същата структура, но различни данни