Mysql-ге қашықтықтан қосылудың үш тәсілі
MySQL-ге қашықтықтан қосылудың үш түрлі әдісін қарастырамыз.
Mysql localhost-та тұрғанда қалай қосылуды жақсы білеміз:
mysql -uroot -pxxxx
Ал егер mysql басқа серверде немесе виртуалкада болса ше? Оған қалай қосыламыз. Виртуалканы ашып, соның терминалында жұмыс жасай беруге болады, бірақ бұлай қашанғы жұмыс жасайсың. Сонымен төменде қашықтықтан mysql-ге қосылудың үш тәсілі келтірілген.
1. SSH арқылы серверге қосылу
ssh [email protected]
mysql -uroot -px.x.x.x
Ең қарапайым тәсіл. Терминалымыздан ssh-арқылы қосыламыз да mysql-ді пайдалана береміз.
Артықшылықтары:
- ештеңені баптаудың қажеті жоқ
- байланыс ssh арқылы, яғни, қауіпсіз
Кемшілігі:
- localhost-та тұрған бағдарлама mysql-мен байланыса алмайды, яғни, мускулмен тек терминал арқылы ғана жұмыс жасай аламыз
2. SSH арқылы портты localhost-қа лақтыру
Негізгі ой мынандай: айталық mysql серверде 3306 портында іске қосылған, біз ssh арқылы аламыз да сервердегі 3306 портын localhost-тағы қалаған портымызға лақтырамыз, айталық 3307, яғни, localhost-тағы кез-келген 3307 портына сұраныс серверге жіберіледі.
Портты былай лақтыруға болады (бұл туралы мына мақалада толығырақ жазылған:
ssh -L :3307:127.0.0.1:3306 [email protected]
192.168.1.156 бұл біздің виртуалкамыздың ip адресі. Енді localhost-тан mysql-ге былай қосыламыз:
mysql -uroot -pxxxx -h 127.0.0.1 -P 3307
Артықшылықтары:
- Байланыс ssh арқылы, қауіпсіз
- Mysql localhost-та секілді болып тұрады, localhost-тағы бағдарламалар оңай жұмыс жасай алады
Кемшілігі:
- Жұмыс кезінде лақтыру үшін орындаған команданы аяқтауға болмайды, ол әрдайым ашық тұруы керек
3. Mysql серверінің өзінде қашықтықтан байланысуға рұқсат беру
Бұл нұсқа шынайы серверлерге қолданылмауы тиіс. Қолдансаңыз, қауіпсіздік жағынан опық жеуіңіз мүмкін
Бұл нұсқада mysql серверін баптап, сырттан тікелей қосыла алатын етеміз. Ол үшін, mysql-дің баптау файлын /etc/mysql/my.cnf ашамыз (windows-та ол қайда жататынын білмеймін). Содан соң ондағы мынандай қатарды/баптауды табамыз:
bind-address = 127.0.0.1
Бұл баптау mysql серверіне қандай ip адрестен қосылуға болатындығын көрсетеді, үнсіз келісім бойынша ол 127.0.0.1 (сондықтан да әдетте сіз тек localhost арқылы ғана қосыла аласыз). Оны сіз өз ip адресіңізге өзгертіп қоя аласыз, мысалы:
bind-address = 192.168.2.120
Өзгерткен соң mysql-ді қайта жүктеуді ұмытпаңыз. Бірақ бұлай жасасаңыз сіз 127.0.0.1 арқылы қосыла алмай қаласыз, сондықтан тестілік виртуалкаларда, барлық ip адрестер үшін рұқсат берген жөн. Олай жасау үшін, бұл баптауды комменттеп тастаңыз:
# bind-address = 192.168.2.120
Бірақ mysql сіздерге әлі де рұқсат бермейді, өйткені енді mysql сізді деректор қоры деңгейінде жібермейді.
Кез-келген хосттан және кез-келген деректер қорына кіре алу үшін mysql-де мынандай сұраныс орындаңыз:
GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY 'мұнда парольді жазыңыз';
“root” пайдаланушының орнына өзіңіздің пайдаланушы логинін жаза аласыз. Бұл командадан соң сіз, сырттан mysql-ге былай қосыла аласыз:
mysql -uroot -pxxxx -h 192.168.1.156 -P 3306
“xxxx” орнына grant all командасында көрсетілген парольді жазасыз.
Тағы да ескертемін бұл тәсілді тек тестілеу кезінде, бағдарлама жазу кезінде, виртуалкаларға ғана қолдану керек. Бірақ жұмыс жасау кезінде өте ыңғайлы
Артықшылықтары:
- Кез-келген жерден қосылуға болады
- Жұмыс жасау кезінде ыңғайлы
Кемшілігі:
- Қауіпсіздік жағынан олқылықтар пайда болуы мүмкін