it-swarm-tr.com

MySQL kullanıcı tablosunu bir sunucudan diğerine nasıl kopyalayabilirim?

Yeni bir MySQL sunucusu kuruyorum ve aynı kullanıcı adını, izin verilen ana bilgisayarları ve şifreleri (ki gidiyor) mevcut bir sunucu olarak vermek istiyorum.

Kullanıcılar tablosunun bir dökümünü alıp yeni sunucuya yüklemek işe yarar mı?

Bundan daha iyi bir yol var mı?

40
Agvorth
oldserver$ mysqldump mysql > mysql.sql
newserver$ mysql mysql < mysql.sql
newserver$ mysql 'flush privileges;'

Bunu yapmalı, -u $USER ve -p$PASSWORD gereğince, gerektiği gibi

34
Dave Cheney

Percona Toolkit 'a bir göz atacağım. pt-show-grants aracı her şeyi söylüyor ...

pt-show-grants MySQL kullanıcı hesapları için hibeler alır, sipariş verir ve yazdırır.

Bunu neden istiyorsun? Birkaç sebep var.

Birincisi, kullanıcıları bir sunucudan diğerine kolayca çoğaltmaktır; ilk sunucudan hibeleri çıkarabilir ve çıktıyı doğrudan başka bir sunucuya aktarabilirsiniz.

İkinci kullanım, hibelerinizi sürüm kontrolüne yerleştirmektir ....

21
Aaron Bush

mysql veritabanının bir dökümü muhtemelen işe yarayacak olsa da, benim deneyimime göre, tüm erişimi düzgün bir şekilde belgelemek ve GRANT ifadeleriyle tekrar kurmak çok daha iyi. Bu şekilde yapmanın iki faydası vardır:

  1. Veritabanı güvenliğinizi ve nasıl uygulandığını anlayacaksınız.
  2. Artık gerekli olmayan erişimi kaldıracaksınız.
14
staticsan

Yeni bir sunucu sürümüne geçiş yapıyorsanız, kabul edilen yanıt (mysql.user tablosunu yedeklemek için mysqldump kullanarak) çok tehlikeli bir yaklaşımdır.

Geçmişte (Mysql 4'ten Mysql 5.1'e geçiş yapan kullanıcılar) bunu yaptım ve daha sonra veritabanı kullanıcılarıma ayrıcalıklar vermeye veya değiştirmeye çalışırken sorun yaşadım.

Bunun nedeni, burada açıklandığı gibi mysql.users tablo yapısının, mysql sunucu sürümleri arasında farklılık göstermesi nedeniyle olur:

https://dba.stackexchange.com/a/16441/18472

Bu nedenle, sunucu sürümünüzü yükseltiyorsanız dikkatli olun. Burada bazı ipuçları:

https://stackoverflow.com/a/13218162/710788

11
abu
11
Bruno Bronosky

mysqldump çalışır, ancak mysql veritabanı ISAM kullandığından, dizini yeni sunucuya kopyalayabilirsiniz. Bunu farklı yerlerde bulacaksınız, ancak mysql veritabanı için en yaygın konum/var/lib/mysql/mysql olacaktır. Yeni sunucuda mysql'i durdurduğunuzdan, eski dizini yoldan çıkardığınızdan, dizini kopyaladığınızdan ve yeniden başlattığınızdan emin olun. Kök olarak standart konumları kullanan bir örnek:

# /etc/init.d/mysqld stop
# cd /var/lib/mysql
# mv mysql ../mysql.backup
# rsync -a [email protected]:/var/lib/mysql/mysql .
# /etc/init.d/mysql start
5
Tim

hibe komutlarını çalıştırmak çok kolaydır. Gibi

"Parola" ile tanımlanan "kullanıcı" @ "Ana bilgisayar" için database.table üzerinde HİBE VERİN

yani

Veritabanında TÜMÜNÜ VERİN. * "Somepass" ile tanımlanan "jack" @ "localhost" a

2
Trausti Thor