Jak zainicjalizować bazę danych MySQL?

0

Dzień dobry. Na wstępie chciałbym zaznaczyć, że jeżeli to nieodpowiedni dział na taki temat to proszę o przeniesienie. Kilka dni temu zainstalowałem MySQL server na swoim komputerze pobrany bezpośrednio ze strony producenta. Niestety nie mogę zainicjalizować bazy danych bezpośrednio z programu. Po odpaleniu XAMPP, MySQL Server również się nie uruchamia. Poniżej zrzuty ekranu.

screenshot-20230605171143.png
screenshot-20230605171200.png
Oraz kod błędu z MySQL

2023-06-05T15:12:47.840732Z 0 [System] [MY-013169] [Server] /usr/local/mysql-8.0.33-macos13-arm64/bin/mysqld (mysqld 8.0.33) initializing of server in progress as process 87014
2023-06-05T15:12:47.841639Z 0 [Warning] [MY-010159] [Server] Setting lower_case_table_names=2 because file system for /usr/local/mysql-8.0.33-macos13-arm64/data/ is case insensitive
2023-06-05T15:12:47.844820Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2023-06-05T15:12:47.904670Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2023-06-05T15:12:48.238752Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 1FDlRg,ad/lS
2023-06-05T15:12:48.686274Z 0 [System] [MY-013172] [Server] Received SHUTDOWN from user <via user signal>. Shutting down mysqld (Version: 8.0.33).
2023-06-05T15:12:49.445604Z 0 [System] [MY-010116] [Server] /usr/local/mysql-8.0.33-macos13-arm64/bin/mysqld (mysqld 8.0.33) starting as process 87016
2023-06-05T15:12:49.447606Z 0 [Warning] [MY-010159] [Server] Setting lower_case_table_names=2 because file system for /usr/local/mysql-8.0.33-macos13-arm64/data/ is case insensitive
2023-06-05T15:12:49.456150Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2023-06-05T15:12:49.516629Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2023-06-05T15:12:50.578050Z 0 [ERROR] [MY-011292] [Server] Plugin mysqlx reported: 'Preparation of I/O interfaces failed, X Protocol won't be accessible'
2023-06-05T15:12:50.578149Z 0 [ERROR] [MY-011300] [Server] Plugin mysqlx reported: 'Setup of bind-address: '*' port: 33060 failed, `bind()` failed with error: Address already in use (48). Do you already have another mysqld server running with Mysqlx ?'
2023-06-05T15:12:50.578180Z 0 [ERROR] [MY-013597] [Server] Plugin mysqlx reported: 'Value '*' set to `Mysqlx_bind_address`, X Plugin can't bind to it. Skipping this value.'
2023-06-05T15:12:50.578214Z 0 [ERROR] [MY-011300] [Server] Plugin mysqlx reported: 'Setup of socket: '/tmp/mysqlx.sock' failed, another process with PID 85969 is using UNIX socket file'
2023-06-05T15:12:50.653297Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2023-06-05T15:12:50.653330Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.
2023-06-05T15:12:50.653697Z 0 [ERROR] [MY-010262] [Server] Can't start server: Bind on TCP/IP port: Address already in use
2023-06-05T15:12:50.653701Z 0 [ERROR] [MY-010257] [Server] Do you already have another mysqld server running on port: 3306 ?
2023-06-05T15:12:50.653710Z 0 [ERROR] [MY-010119] [Server] Aborting
2023-06-05T15:12:51.690269Z 0 [System] [MY-010910] [Server] /usr/local/mysql-8.0.33-macos13-arm64/bin/mysqld: Shutdown complete (mysqld 8.0.33)  MySQL Community Server - GPL.

Specyfikacja komputera:

MacBook Pro 14" (2021)
Procesor: M1 Pro
RAM: 32GB
Dysk: 500 GB

Za wszystkie wskazówki dotyczące rozwiązania błędu będę bardzo wdzięczny. Pozdrawiam i życzę miłego dnia.

5
2023-06-05T15:12:50.653697Z 0 [ERROR] [MY-010262] [Server] Can't start server: Bind on TCP/IP port: Address already in use
2023-06-05T15:12:50.653701Z 0 [ERROR] [MY-010257] [Server] Do you already have another mysqld server running on port: 3306 ?

Co ty na to ?

Coś już na porcie jest aktywne

3

Nie masz przypadkiem jakiegoś dockera postawionego z bazą?

Sprawdź też jaki proces zajmuje Ci ten port

sudo lsof -i -P | grep LISTEN | grep :3306
0
axelbest napisał(a):

Nie masz przypadkiem jakiegoś dockera postawionego z bazą?

Sprawdź też jaki proces zajmuje Ci ten port

sudo lsof -i -P | grep LISTEN | grep :3306

Oto co wypluł terminal

mysqld    87872          _mysql   18u  IPv6 0x6adcf213d8091c8f      0t0    TCP *:33060 (LISTEN)
mysqld    87872          _mysql   21u  IPv6 0x6adcf213d808f48f      0t0    TCP *:3306 (LISTEN)
2

Zakładam, ze jak ubijesz te procesy (https://setapp.com/how-to/how-to-view-and-kill-processes-on-mac) , to po restarcie znowu wrócą. Obstawiam, że masz jakiś soft który też zainstalował Ci MySQL'a.
Poza tym - czy xampp na macosie przypadkiem nie ma wbudowanego MySQL'a wraz ze swoją instalką?

Może masz taki config - > mySQL zainstalowany osobno + xampp (xampp to poniekąd akronim, a m w tej nazwie to MySQL). Odinstalowałbym i jedno i drugie (o ile nie masz jakichś ważnych baz) - i potem zaczał od instalacji Xamppa. Swoją droga jeśli zamierzasz programować w PHP'ie, to polecam bardziej dockera i jakąś ciekawą konfigurację (popatrz jak to wygląda w nowym Symfony albo w Laravel Sail)

0

Szczerze mówiąc najpierw zainstalowałem MySQL a potem Xampp. Być może rzeczywiście jedno się z drugim gryzie. Nie programuje w PHP, ale próbuję odpalić bazę danych sql z poprzedniego komputera i korzystać z niej w projekcie Qt Creator C++. Plugin do Qt już zainstalowałem, ale zauważyłem, że nie mogę się z bazą połączyć i tutaj może być przyczyna. Odinstaluje jedno i drugie, następnie zainstaluje samego xamppa i zobaczę co będzie. Na tą chwile dzięki za pomoc!

4

To tutaj polecałbym właśnie odwrotne rozwiazanie. Skoro potrzeba Ci tylko MySQL - to Apache,PHP i inne bonusy XAMPPA nie będa Ci potrzebne.
Jaki miałeś problem gdy próbowałeś połączyć się z bazą?

W teorii nawet w obecnej konfiguracji powinnieś się połączyć - port to ewidentnie 3306, login: root, host: localhost i powinno działać. Chyba że chcesz łączyć się z innych urządzeń/aplikacji - wtedy możliwe, że będziesz musiał zezwolić na takie połączenia w konfiguracji mysql'a.

0

Odinstalowałem zarówno MySQL jak i Xampp i zainstalowałem MySQL. Przy próbie zainicjalazowana bazy danych dostaje błąd:

2023-06-06T19:40:26.907600Z 0 [System] [MY-013169] [Server] /usr/local/mysql-8.0.33-macos13-arm64/bin/mysqld (mysqld 8.0.33) initializing of server in progress as process 99577
2023-06-06T19:40:26.924986Z 0 [Warning] [MY-010159] [Server] Setting lower_case_table_names=2 because file system for /usr/local/mysql-8.0.33-macos13-arm64/data/ is case insensitive
2023-06-06T19:40:26.928938Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2023-06-06T19:40:26.983751Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2023-06-06T19:40:27.348664Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: -mS#qwHol9ee
2023-06-06T19:40:27.784318Z 0 [System] [MY-013172] [Server] Received SHUTDOWN from user <via user signal>. Shutting down mysqld (Version: 8.0.33).
2023-06-06T19:40:28.465726Z 0 [System] [MY-010116] [Server] /usr/local/mysql-8.0.33-macos13-arm64/bin/mysqld (mysqld 8.0.33) starting as process 99579
2023-06-06T19:40:28.467595Z 0 [Warning] [MY-010159] [Server] Setting lower_case_table_names=2 because file system for /usr/local/mysql-8.0.33-macos13-arm64/data/ is case insensitive
2023-06-06T19:40:28.482522Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2023-06-06T19:40:28.543385Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2023-06-06T19:40:29.599200Z 0 [ERROR] [MY-011292] [Server] Plugin mysqlx reported: 'Preparation of I/O interfaces failed, X Protocol won't be accessible'
2023-06-06T19:40:29.599339Z 0 [ERROR] [MY-011300] [Server] Plugin mysqlx reported: 'Setup of bind-address: '*' port: 33060 failed, `bind()` failed with error: Address already in use (48). Do you already have another mysqld server running with Mysqlx ?'
2023-06-06T19:40:29.599380Z 0 [ERROR] [MY-013597] [Server] Plugin mysqlx reported: 'Value '*' set to `Mysqlx_bind_address`, X Plugin can't bind to it. Skipping this value.'
2023-06-06T19:40:29.599423Z 0 [ERROR] [MY-011300] [Server] Plugin mysqlx reported: 'Setup of socket: '/tmp/mysqlx.sock' failed, another process with PID 87872 is using UNIX socket file'
2023-06-06T19:40:29.657240Z 0 [Warning] [MY-010068] [Server] CA certificate ca.pem is self signed.
2023-06-06T19:40:29.657275Z 0 [System] [MY-013602] [Server] Channel mysql_main configured to support TLS. Encrypted connections are now supported for this channel.
2023-06-06T19:40:29.657651Z 0 [ERROR] [MY-010262] [Server] Can't start server: Bind on TCP/IP port: Address already in use
2023-06-06T19:40:29.657655Z 0 [ERROR] [MY-010257] [Server] Do you already have another mysqld server running on port: 3306 ?
2023-06-06T19:40:29.657665Z 0 [ERROR] [MY-010119] [Server] Aborting
2023-06-06T19:40:30.695380Z 0 [System] [MY-010910] [Server] /usr/local/mysql-8.0.33-macos13-arm64/bin/mysqld: Shutdown complete (mysqld 8.0.33)  MySQL Community Server - GPL.

Jeśli mam być szczery to próbowałem to wszystko skonfigurować podobnie jak na laptopie z Windows 10 tzn. mysql + xampp. Wówczas po zainstalowaniu xampp miałem możliwość wglądu do mojej bazy danych przez przeglądarkę (localhost / phpadmin). Ale widzę, że w przypadku macOS sprawa jest dużo bardziej zagmatwana :/

Sprawdziłem jeszcze raz co jest na porcie

mysqld    19029          _mysql   18u  IPv6 0x6adcf213d808f48f      0t0    TCP *:33060 (LISTEN)
mysqld    19029          _mysql   21u  IPv6 0x6adcf213d809148f      0t0    TCP *:3306 (LISTEN)
1

Coś albo źle odinstalowałeś, albo cuś, bo usługa ci pozostała włączona i uruchomiona...
Jako, że na Macu się nie znam, więc mogę pisać głupoty, ale spróbuj usunąć jakoś usługę z blokującym portem (poza tym po odinstalowaniu MySQL to już jest śmieć).
Jak się nie uda, to zobacz, czy gdzieś w samym XAMPie nie masz możliwości zmiany portu dla MySQL. W UniServer Zero taka opcja jest :)

2

Dzień dobry. Poniżej rozwiązanie.

Na wstępie dodam, że mój problem dotyczył (oprócz inicjalizacji bazy danych) jej widoczności z poziomu Qt Creator). U mnie pojawiał się błąd

QSqlQuery::prepare: database not open
QSqlError("", "", "")

oraz

QSqlError("1045", "QMYSQL: Unable to connect", "Access denied for user 'root'@'localhost' (using password: NO)")

Tym samym poniżej wstawiam oba rozwiązania. Pierwsze to usunięcie jednej instancji mysql. Drugie to nadanie przywilejów root'owi.

  1. Odinstalować Xampp i wszystko co się z nim wiąże. Zostawić tylko MySQL

  2. Zatrzymać server mysql i raz jeszcze odpalić. W tym momencie po wpisaniu

    sudo lsof -i -P | grep LISTEN | grep :3306
    

    powinno nam wyskoczyć coś podobnego do:

    mysqld    28777          _mysql   18u  IPv6 0x8a0d66b153d9f2cf      0t0    TCP *:33060 (LISTEN)
    mysqld    28777          _mysql   20u  IPv6 0x8a0d66b153d9cacf      0t0    TCP *:3306 (LISTEN)
    

    Problem z kilkoma uruchomionymi mysql powinien zniknąć.

  3. Następnie ustawiamy uprawnienia na root'a czyli:

    mysql -u root -p
    
    CREATE USER 'root'@'%' IDENTIFIED BY 'naszeHaslo';
    
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' WITH GRANT OPTION;
    
    FLUSH PRIVILEGES;
    

    Dodatkowo w funkcji w której nawiązujemy połączenie z bazą danych w projekcie Qt Creator ustawić hasło takie jak podaliśmy na początku. U mnie wygląda to tak:

     db = QSqlDatabase::addDatabase("QMYSQL");
     db.setHostName("localhost");
     db.setUserName("root");
     db.setPassword("11111111");
     db.setDatabaseName("atlas");
    

Mam nadzieje, że powyższe rozwiązanie okaże się dla kogoś pomocne. Miłego dnia :]

1 użytkowników online, w tym zalogowanych: 0, gości: 1