Раз в несколько месяцев приходится или открывать внешний доступ к тестовому БД, или создать нового пользователя для него. Операция по сути простейшая, но из за редкости происходящего, все команды, нужные для ввода, забываются. Поэтому решил собрать все что нужно, чтобы открыть доступ к MySQL, создание нового пользователя в MySQL, в одном места, как шпаргалку.
Исходные данные: виртуальная машина Битрикс, CentOS7
Нужен пользователь root MySQL
Пароль можно посмотреть в /root/.my.cnf
Подключение к мускулю mysql -u root -p
Создание нового пользователя CREATE USER 'almat'@'ip or %' IDENTIFIED BY 'password';
Задать ему права GRANT PRIVILEGE ON database.table TO 'almat'@'host';
Список прав
1 2 3 |
GRANT CREATE, ALTER, DROP, INSERT, UPDATE, DELETE, SELECT, REFERENCES, RELOAD on *.* TO 'almat'@'localhost' WITH GRANT OPTION; |
Все права GRANT ALL PRIVILEGES ON *.* TO 'almat' WITH GRANT OPTION;
WITH GRANT OPTION — может задать права другим пользователям(необязательно, и даже, вредно если не знаете что делаете)
Перезагрузить права — FLUSH PRIVILEGES;
Необзательно, читать https://dev.mysql.com/doc/refman/8.0/en/privilege-changes.html
If you modify the grant tables indirectly using an account-management statement, the server notices these changes and loads the grant tables into memory again immediately. Account-management statements are described in Section 13.7.1, “Account Management Statements”. Examples include
GRANT
,REVOKE
,SET PASSWORD
, andRENAME USER
.
Посмотреть всех пользователей в БД SELECT * FROM mysql.user;
Открыть порт — sudo iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
Проверит запись файрвола — sudo iptables-save | grep 3306
Важно, сохранить запись iptables, иначе при перезагрузке вернется к предыдущему состоянию
1 2 3 4 |
$ service iptables save iptables: Saving firewall rules to /etc/sysconfig/iptables:[ OK ] |
Проверить открытие порта. На другой машине telnet myserver_ip 3306
Далее подключиться удаленно, например, через Heidisql