MySQL istemcisi tarafından kullanılan bağlantı yöntemini nasıl belirleyebilirim?


10

Bir MySQL istemcisi (örn. mysql) Kullanırken, bir Unix soket dosyası veya TCP / IP kullanarak sunucuya bağlı olup olmadığını nasıl belirleyebilirim?

Yanıtlar:


13

Taşımayı bulma

Kullanmayı deneyin netstat -ln | grep 'mysql've çıkış tarafından nasıl bağlandığını görebilirsiniz. mermiye erişiminiz varsa

Unix'te MySQL programları, ana bilgisayar adını localhost'a özel olarak, diğer ağ tabanlı programlara kıyasla beklediğinizden farklı bir şekilde davranır. Localhost'a bağlantılar için, MySQL programları bir Unix soket dosyası kullanarak yerel sunucuya bağlanmaya çalışır.

Bir bağlantı noktası numarası belirtmek için bir --portveya -Pseçenek belirtilse bile bu gerçekleşir .

Bağlantı türünü mysql CLI içinden bilmek istiyorsanız , '\ s' (durum) komutunu kullanın.

mysql> \s

Çıktıda aşağıdakilerden birine benzer bir çizgi olacaktır (Unix'te).

Connection:             127.0.0.1 via TCP/IP

veya

Connection:             Localhost via UNIX socket

Belirli bir nakliyeyi zorlamak

İstemcinin yerel sunucuya TCP / IP bağlantısı yapmasını sağlamak için , 127.0.0.1 ana bilgisayar adı değerini veya yerel sunucunun IP adresini veya adını belirtmek için --hostveya öğesini -hkullanın. --protocol=TCPSeçeneği kullanarak bağlantı protokolünü localhost için bile açıkça belirtebilirsiniz . Örneğin:

shell> mysql --host=127.0.0.1
shell> mysql --protocol=TCP

--protocol={TCP|SOCKET|PIPE|MEMORY}Seçeneği açıkça sunucuya bağlanmak için kullanmak üzere bir protokol belirler. Diğer bağlantı parametrelerinin normalde istediğiniz protokol dışında bir protokol kullanılmasına neden olması yararlı olur. Örneğin, Unix ile localhost arasındaki bağlantılar varsayılan olarak bir Unix soket dosyası kullanılarak yapılır:

shell> mysql --host=localhost

Bunun yerine TCP / IP bağlantısını kullanılmaya zorlamak için bir --protocolseçenek belirtin :

shell> mysql --host=localhost --protocol=TCP

Protokol türleri:

  • TCP: Yerel veya uzak sunucuya TCP / IP bağlantısı. Tüm platformlarda kullanılabilir.
  • SOKET: Yerel sunucuya Unix soket dosyası bağlantısı. Yalnızca unix'te kullanılabilir.
  • BORU: Yerel veya uzak sunucuya adlandırılmış kanal bağlantısı. Yalnızca pencerelerde bulunur.
  • BELLEK: Yerel sunucuya paylaşılan bellek bağlantısı. Yalnızca pencerelerde bulunur.

Unix soket dosya bağlantısı TCP / IP'den daha hızlıdır, ancak yalnızca aynı bilgisayardaki bir sunucuya bağlanırken kullanılabilir.


@Anil: teşekkürler, mükemmel bir cevap verdin.
Eugene Yarmash
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.