Въведение
Едно от първите неща, за които ще трябва да помислите, когато работите с MySQL база данни, е как да се свържете и да взаимодействате с екземпляра на базата данни. Това изисква координация между клиента на базата данни — компонента, който използвате за взаимодействие с базата данни, и сървъра на базата данни — действителния екземпляр на MySQL, който съхранява, организира и предоставя достъп до вашите данни.
Поради това трябва да разберете как да се свържете като клиент, като предоставите необходимата информация за удостоверяване. В това ръководство ще разгледаме как да се свържете с MySQL база данни с помощта на родния mysql
клиент на командния ред — един от най-често срещаните и полезни начини за взаимодействие с екземпляр на база данни.
В придружаващо ръководство можете да разберете как да конфигурирате удостоверяването на MySQL, за да отговори на нуждите на вашия проект. Обмислете да прочетете и двете ръководства за по-пълна картина на това как работи удостоверяването в MySQL.
Основна информация за mysql
клиент
mysql
client е клиентът на командния ред по подразбиране и SQL обвивката за MySQL. Можете да го използвате интерактивно, за да създадете шел сесия с вашия сървър или можете да го захранвате с SQL файлове, за да се изпълняват без взаимодействие с потребителя. Той е особено полезен при внедряване на опции за конфигурация и настройка на вашата среда. Интерактивното изследване и ad-hoc заявките също са силна страна при разработването на моделите за достъп, които вашите програми ще използват.
Начинът за свързване и удостоверяване с MySQL сървър зависи от конфигурацията на вашия сървър. В следващите раздели ще разгледаме някои от основните опции за свързване. За по-голяма яснота ще направим разлика между локални и отдалечени връзки:
- локална връзка :връзка, при която клиентът и MySQL екземплярът се намират на един и същ сървър
- отдалечена връзка :където клиентът се свързва към мрежово достъпен екземпляр на MySQL, работещ на различен компютър
Нека започнем със свързване към база данни от същия компютър.
Свързване към локална база данни с mysql
Без никакви аргументи, mysql
командата се опитва да се свърже с Unix сокет файл за достъп до локална база данни. Обикновено местоположението на сокетния файл по подразбиране се определя или от конфигурационен файл, или от компилирана стойност по подразбиране. По подразбиране потребителското име на вашата операционна система се използва за опит за свързване с базата данни.
Така че, ако текущият ви потребител е валиден потребител на MySQL във вашата локална база данни, можете да опитате да се свържете, като напишете:
mysql
Ако акаунтът съществува и не изисква парола или ако MySQL сокет удостоверяване е конфигурирано за акаунта, ще влезете автоматично. Ако потребителското име не съществува в MySQL или ако се изисква парола или допълнително удостоверяване, командата ще бъде неуспешна.
За да контролирате начина, по който mysql
се опитва да влезе в базата данни, предаде допълнителна информация с вашата команда, като използва опциите на командния ред:
--user=<потребителско име>код>
или-u <потребителско име>код>
:определя потребителя на MySQL, с който да се удостоверява.--парола
или-p
:казва на MySQL да поиска парола за потребителя на MySQL.--host=127.0.0.1
или-h 127.0.0.1
:казваmysql
за да се свържете с локалния MySQL екземпляр, използвайки локалния TCP loopback адрес вместо Unix сокет. Това е важно да използвате, ако вашият MySQL сървър не е конфигуриран да използва Unix сокети.
Забележка: MySQL интерпретира 127.0.0.1
различно от това localhost
. Посочване на 127.0.0.1
показва, че искате да използвате TCP връзка, докато localhost
ще накара MySQL да се опита да използва Unix сокет за свързване с локалната база данни.
Така че, ако трябва да влезете като потребител на MySQL eva
с парола, но все пак използвайки Unix сокета за свързване, можете да въведете:
mysql --user=eva --password
mysql
клиентът ще ви подкани да въведете парола за акаунта.
Ако искате да опитате да влезете със същото потребителско име, но през TCP връзка към локалната база данни, трябва да въведете:
mysql --user=eva --password --host=127.0.0.1
Конфигурацията за удостоверяване по подразбиране, както и първоначалното административно потребителско име и парола може да се различават в зависимост от това как е инсталиран MySQL. Много методи обаче настройват MySQL да използва Unix сокет и включват root
по подразбиране потребител като администраторски акаунт.
В тези случаи можете да влезете в базата данни като root
потребител, като напише:
mysql --user=root --password
Ще бъдете подканени за административната парола, която е била избрана или генерирана по време на инсталацията, за да продължите.
Всички тези методи ви позволяват да се свържете с локална MySQL база данни.
Свързване с отдалечена база данни
Ако искате да се свържете с отдалечена база данни MySQL, ще трябва да предоставите мрежовото местоположение на отдалечения хост и евентуално да добавите допълнителна информация.
Наличните методи за удостоверяване варират в зависимост от конфигурацията на MySQL екземпляра. Най-често обаче трябва да предоставите следните параметри за удостоверяване:
Опция | Описание |
---|---|
--host= или -h | Името на мрежовия хост или IP адреса на MySQL сървъра. |
--port= или -P | Мрежовият порт, на който работи MySQL сървърът. Ако сървърът използва порт 3306, MySQL порт по подразбиране, този параметър може да бъде пропуснат. |
--user= или -u | Потребителското име на базата данни, с което искате да се свържете. Ако не е посочено, ще се използва потребителското име на вашата операционна система. |
--парола или -p | Покажете, че искате да предоставите парола за посочения акаунт. mysql клиентът ще ви подкани за паролата, след като натиснете Enter . |
База данни MySQL | Името на базата данни на MySQL, до която искате да получите достъп. Ако не е посочено, mysql ще се свърже със сървъра, без да се свързва с конкретна база данни. |
Основният формат за свързване към отдалечена база данни обикновено изглежда така:
mysql --host=<hostname> --port=<port> --user=<user> --password <database>
След натискане на Enter , mysql
клиентът ще ви подкани за паролата. Ако се удостоверите успешно, ще бъде стартирана нова интерактивна MySQL сесия.
Като пример можем да си представим, че искаме да се свържем с база данни със следните изисквания:
- име на хост:
myhost
- порт:1234
- база данни:
applicationdb
- потребителско име:
myapplicationuser
- парола:
mypass
Извикване на mysql
със следните опции ще ви позволи да се удостоверите:
mysql --host=myhost --port=1234 --user=myapplicationuser --password applicationdb
При натискане на enter ще бъдете подканени да въведете парола, където можете да се удостоверите с mypass
.
Коригиране на конфигурацията за удостоверяване на MySQL сървър
Ако искате да промените правилата, които диктуват как потребителите могат да се удостоверяват във вашите MySQL екземпляри, можете да направите това, като промените конфигурацията на вашия сървър. Можете да разберете как да промените конфигурацията за удостоверяване на MySQL в тази статия.
Заключение
В това ръководство разгледахме MySQL удостоверяването от страна на клиента. Демонстрирахме как се използва mysql
клиент на командния ред за свързване както към локални, така и към отдалечени екземпляри на база данни.
Познаването как да се свързвате с различни екземпляри на MySQL е една от първите стъпки, които трябва да разберете, когато започнете да работите със системата на базата данни. Можете да стартирате локален MySQL екземпляр за разработка, който не се нуждае от никакво специално удостоверяване, но вашите бази данни в етапа и производство почти сигурно ще изискват удостоверяване. Възможността за удостоверяване и в двата случая ще ви позволи да работите добре в различни среди.