MySQL: Önemli hata: Ayrıcalık tabloları açılamıyor ve kilitlenemiyor: 'mysql.host' tablosu mevcut değil [kapalı]


9

Birden yerel MySQL 5.5 sunucum Windows XP SP3'ümde çalışmayı durdurdu.

Ayrıca WAMP Apache ve WAMP MySQL yüklü, ancak WAMP MySQL çalışmıyor. Hata günlüğü şunları gösterir:

  • Sunucu başlatılamıyor: TCP / IP bağlantı noktasında bağlama: Böyle bir dosya veya dizin yok
  • 3306 bağlantı noktasında çalışan başka bir mysqld sunucunuz var mı?

Bağlantı noktasını 3306'dan 3307'ye değiştirmeyi denedim, ancak hizmet hala başlamıyor, hata veriyor:

Olay Görüntüleyicisi şunları gösterir:

  • Önemli hata: Ayrıcalık tabloları açılamıyor ve kilitlenemiyor: 'mysql.host' tablosu mevcut değil
  • Mysql.plugin tablosu açılamıyor. Lütfen oluşturmak için mysql_upgrade komutunu çalıştırın.

Görünüşe göre, sadece sunucu çalışıyorsa mysql_upgrade çalıştırabilirsiniz. Hizmet başlatılamıyorsa 'mysql.host' dosyasını nasıl oluşturabilirim?

MySQL Server'ı kaldırdım ve yeniden kurdum ve kurulumdan sonra yapılandırma sihirbazı sırasında bir hata alıyorum: Hizmet başlatılamadı. Hata: 0.

Buradan nasıl ilerlerim?


Steve bunu Windows, BSD, Linux, OSX veya başka bir işletim sisteminde mi çalıştırıyorsunuz? Windows'ta çalıştırıyorsanız, bazı adımların ayrıntıları farklı olacaktır.
Rik Schneider

@Rik Schneider: Rick, Windows dizüstü bilgisayarımda MySQL kullanıyorum. Teşekkürler.
Steve

Yanıtlar:


9

Aşağıdaki komutu çalıştırın

mysql_install_db

BTW, bu, (en azından) Linux CentOS 7'ye kurulum yaparken gereklidir. Aksi takdirde mysqld başlamaz. systemctl status mysqld.service 2015-02-20 15:41:07 15160 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist
Mike S

5

Windows üzerinde başlamadan önce mysql başlatın.

mysqld --initialize

Keşke bunu bir kereden fazla oylayabilseydim. Bu basit çözümü arıyordum. Teşekkürler!
Schiavini

1

Yapmanız gereken ilk şey şu komutları çalıştırmaktır:

use mysql
show tables;

Lütfen farkları not edin

MySQL 5.0 mysql şemasında 17 tablo içeriyor

+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| func                      |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| host                      |
| proc                      |
| procs_priv                |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+

MySQL 5.1 mysql şemasında 23 tablo var

+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| event                     |
| func                      |
| general_log               |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| host                      |
| ndb_binlog_index          |
| plugin                    |
| proc                      |
| procs_priv                |
| servers                   |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+

MySQL 5.5'in mysql şemasında 24 tablosu vardır

+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| event                     |
| func                      |
| general_log               |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| host                      |
| ndb_binlog_index          |
| plugin                    |
| proc                      |
| procs_priv                |
| proxies_priv              |
| servers                   |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+

MySQL 5.0 sürümünde mysql.plugin bulunmadığını lütfen unutmayın. Bir şekilde MySQL 5.0'ı yüklediğinizi ve MySQL 5.5 için hayati tabloları yaptığınızı tahmin etmek çok akla yatkın.

İşte bazı iyi haberler. Deneyebileceğiniz bir şey var.

Bu örnek için

  • ServerA, MySQL 5.5 verilerinizin yaşadığı yerdir
  • ServerB ayrı bir MySQL 5.5 ortamı oluşturacağınız yerdir

İşte adımlarınız

  1. ServerA'da, mkdir / root / myusers
  2. ServerA'da cp /var/lib/mysql/mysql/user.* / root / myusers /.
  3. MySQL 5.5'i ServerB'ye yükleyin
  4. scp SunucuB: / var / lib / mysql / mysql / * SunucuA: / var / lib / mysql / mysql /.
  5. ServerA'da cp /root/myusers/user.* / var / lib / mysql / mysql /.
  6. hizmet mysql başlangıç

Bu kadar.

Bunu Windows'ta çalıştırıyorsanız, aynı ilkelerin uygulanması gerekir.

Bir şans ver !!!

GÜNCELLEME 2011-07-29 16:15 EDT

Kullanıcı adlarınızda DB Özel Ayrıcalıkları varsa, işte adımlarınız

  1. ServerA'da, mkdir / root / myusers
  2. ServerA'da cp /var/lib/mysql/mysql/user.* / root / myusers /.
  3. ServerA'da cp /var/lib/mysql/mysql/db.* / root / myusers /.
  4. MySQL 5.5'i ServerB'ye yükleyin
  5. scp SunucuB: / var / lib / mysql / mysql / * SunucuA: / var / lib / mysql / mysql /.
  6. ServerA'da cp / root / myusers / * / var / lib / mysql / mysql /.
  7. hizmet mysql başlangıç

0

Hizmet başlatılamadı. Hata: 0.

Ortam değişkenlerine MySQL yolunu ekleyin.


Teşekkürler, ama zaten Path değişkenindeydi.
Steve

0

zaten çalışıyor mysql var gibi görünüyor

Deneyin

ps ax|grep mysql

u bazı çıkış görüyorsanız, muhtemelen u durdurmanız gerekir (veya yeniden başlat kutusu).

u herhangi bir çıktı görmüyorsanız, demysize olmadan mysqld çalıştırmayı deneyin ve çıktıya bakın.


0

İnsanların soruyu cevaplamasına yardımcı olmak için bir windows etiketi ekledim.

Geçmişim pencereler değil, müdürler geçerli.

Zaten çalışan bir mysql işlemi var mı? Eğer öyleyse kaldırmadan önce onu öldürmeniz gerekir. Kaldırmaya / yeniden yüklemeye çalıştığınızda hala çalışıyorsa, tamamen kaldırmanızı engelleyen işlemlere ve dosyalara sahip olursunuz.

Hizmetler penceresini açın, adında mysql olan herhangi bir şeyi arayın ve yeniden başlatma ile başlamaya çalışmadığından emin olun. Ardından çalışan programlar penceresinin çalışan işlemler sekmesini açın (açmak için CTRL-ALT-DEL tuşlarını kullanın) ve adında mysql ile çalışan işlemleri arayın ve öldürün.

Artık çalışan mysql işlemleri olmadığından eminseniz devam edebilirsiniz. Artık çalışan mysql işlemleri asılı değil emin olmak için yeniden başlatmak isteyebilirsiniz.

Şu anda mysql'yi yeniden yükleyebilmeniz ve başlatabilmeniz gerekir.


0

Mysql-test-run çalıştırın ve aşağıdaki çıktıyı görmelisiniz:

./mysql-test-run
Logging: ./mysql-test-run  
2013-09-14 03:39:32 2566 [Warning] Setting lower_case_table_names=2 because file system for /var/folders/fr/sn4l2f393_v_ytcwkb0lx7_40000gp/T/_M2mZFQPjV/ is case insensitive
2013-09-14 03:39:32 2566 [Note] Plugin 'FEDERATED' is disabled.
2013-09-14 03:39:32 2566 [Note] Binlog end
2013-09-14 03:39:32 2566 [Note] Shutting down plugin 'MyISAM'
2013-09-14 03:39:32 2566 [Note] Shutting down plugin 'CSV'
MySQL Version 5.6.13
Checking supported features...
 - SSL connections supported
Using suites: main,sys_vars,binlog,federated,rpl,innodb,innodb_fts,perfschema,funcs_1,opt_trace,parts,auth_sec
Collecting tests...
 - adding combinations for binlog



 - adding combinations for rpl
Removing old var directory...
Creating var directory '/Users/das/mysql/mysql-5.6.13-osx10.7-x86_64/mysql-test/var'...
Installing system database...
Using server port 50409

==============================================================================

TEST                                      RESULT   TIME (ms) or COMMENT
--------------------------------------------------------------------------

0

Datadir'inizi taşırsanız, yalnızca yeni datadir izinlerini vermekle kalmaz, tüm üst dizinlerin izinlerinin olduğundan emin olmanız gerekir.

Datadir'imi Ubuntu'ya monte edilmiş bir sabit sürücüye taşıdım:

/media/*user*/Data/

ve veri dizinim Veritabanlarıydı .

Medya, kullanıcı ve Veri dizinlerinin her biri için 771 izinleri ayarlamak zorunda kaldı :

sudo chmod 771 *DIR*

Bu işe yaramazsa, mysql'in çalışmasını sağlayabileceğiniz başka bir yol da /etc/mysql/my.cnf içindeki kullanıcıyı root olarak değiştirmektir; buna rağmen, güvenlik açısından bunu yapmakla ilgili bazı şüpheler yoktur.

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.