sql >> Databasteknik >  >> RDS >> Mysql

Ställ in MySQL 8 från Binary Tarball

I den här artikeln kommer vi att diskutera binär tarball MySQL-installation. Vi kommer att diskutera MySQL 8-installation med binära tarballs och installera MySQL 8 på CentOS 7 med binära tarballs. Binära tarballs baserad installation har sina egna för- och nackdelar, vi kommer att gå igenom det. Installation från binära tarballs är oberoende av Linux-distributionen eller init-systemet som distributionen använder. Detta innebär att samma installationsmetod fungerar på RPM och döda baserade system till exempel, men det kommer också att fungera på mer exotiska distributioner som Gen 2 också. Det finns en binär tarball för macOS också tillgänglig och installationsproceduren är inte mycket annorlunda, den här metoden behöver ett mer manuellt ord. Skriptet mysql_install_db fasades ut i MySQL 5.7 och tas bort från MySQL 8. Den första databasen kan skapas med kommandot mysqld –initialize. Nu när vi kommer att installera MySQL manuellt kommer vi att använda kommandot mysqld –initialize för att skapa en tom databas.

Låt oss först städa lite. Vi kommer att ta bort den mycket gamla versionen av mariadb-libs som tillhandahåller my.cnf som skulle komma i konflikt med vår.

Ta bort Mariadb libs:

[[email protected] ~]# sudo yum remove -y mariadb-libs

Ladda ner källan tarball för MySQL community survey 8.0

[[email protected] ~]# curl -L -O https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11-linux-glibc2.12-x86_64.tar .gz% Totalt % Mottaget % Xferd Genomsnittlig hastighet Tid Tid Tid AktuellLadda Uppladdning Totalt förbrukad vänsterhastighet0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0100 575M 100 575M 0 0 7726k 0 0:01:16 0:01:16 --:--:-- 8516k
[[email protected] ~]# ll-rw-r--r--. 1 rotrot 603019898 23 juli 10:31 mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz

Tarballen laddas inte ner så låt oss packa upp den till usr/local

[[email protected] ~]# sudo tar xvfz mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz -C /usr/local/

Slutför förhandskraven

låt oss installera libaio.

[[email protected] ~]# sudo yum -y install libaio
Skapa en MySQL-grupp, detta görs normalt av paketen men eftersom vi installerar den manuellt från binär tarball måste vi nu göra det.
[[email protected] ~]# sudo groupadd mysql

Låt oss skapa en MySQL-användare du

[[email protected] ~]# sudo useradd -r -g mysql -s /bin/false mysql

verifiera att mysql-användaren finns där

[[email protected] ~]# getent passwd | grep mysqlmysql:x:988:1001::/home/mysql:/bin/false

fick /usr/local och skapa en symbollänk och kontrollera den sedan

[[email protected] ~]# cd /usr/local[[email protected] local]# sudo ln -s mysql-8.0.11-linux-glibc2.12-x86_64 mysql[[email protected] lokal]# ls -la mysqllrwxrwxrwx. 1 rotrot 35 juli 23 15:08 mysql -> mysql-8.0.11-linux-glibc2.12-x86_64

skapa MySQL-filkatalog som kommer att hålla datamängden äganderätt och behörigheter medan du står i /usr/local/

[[email protected] local]# sudo mkdir mysql-filer[[email protected] local]# sudo chown mysql:mysql mysql-filer[[email protected] local]# sudo chmod 750 mysql-filer

Initiera MySQL

Gå till mysql-katalogen och initiera mysqld, på tidigare versioner kallades detta mysql_installed_db

[[email protected] local]# cd mysql[[email protected] mysql]# sudo ./bin/mysqld --initialize --user=mysql2020-07-23T12:12:10.028247Z 0 [System] [MY-013169] [Server] /usr/local/mysql-8.0.11-linux-glibc2.12-x86_64/bin/mysqld (mysqld 8.0.11) initiering av server pågår som process 250142020-027:12T :15.470538Z 5 [Notera] [MY-010454] [Server] Ett temporärt lösenord genereras till [email protected]:Hqn+jK6lfzNS2020-07-23T12:12:18.875370Z 0] [System] [M3170-0 ] /usr/local/mysql-8.0.11-linux-glibc2.12-x86_64/bin/mysqld (mysqld 8.0.11) initiering av server har slutförts

Observera att det tillfälliga root-lösenordet genereras, vilket i mitt fall är ([email protected]:Hqn+jK6lfzNS)

Kopiera init-skriptet från support-filer till /etc/init.d

[[email protected] mysql]# sudo cp ./support-files/mysql.server /etc/init.d/

starta mysql-servern med init-filen som vi precis kopierade

[[email protected] mysql]# sudo /etc/init.d/mysql.server startStarting MySQL.Loggar till '/usr/local/mysql/data/localhost.localdomain.err'.. FRAMGÅNG! 

Anslut nu ro mysql genom att tillhandahålla den temporära passwd som genererades tidigare

[[email protected] mysql]# ./bin/mysql -uroot -pAnge lösenord:Välkommen till MySQL-monitorn. Kommandon slutar med; eller \g. Ditt MySQL-anslutnings-id är 8Serverversion:8.0.11Copyright (c) 2000, 2018, Oracle och/eller dess dotterbolag. Alla rättigheter reserverade. Oracle är ett registrerat varumärke som tillhör Oracle Corporation och/eller dess dotterbolag. Andra namn kan vara varumärken som tillhör sina respektive ägare. Skriv 'hjälp'; eller '\h' för hjälp. Skriv '\c' för att rensa den aktuella inmatningssatsen.mysql>

Låt oss ändra det tillfälliga lösenordet för rotanvändaren.

mysql> ändra användaren 'root'@'localhost' identifierad av 'My_root_pass1!'; Fråga OK, 0 rader påverkade (0,07 sek)

Kontrollera socket-filens plats:

mysql> visar variabler som 'socket';+---------+----------------+| Variabelnamn | Värde |+---------------+----------------+| uttag | /tmp/mysql.sock |+---------------------+----------------+1 rad i set (0,01 sek) 

För att undvika att behöva skriva sökvägsnamnet på klientprogram alltid när du arbetar med MySQL, kan du lägga till katalogen /usr/local/mysql/bin till din PATH-variabel:

[[email protected] mysql]# export PATH=$PATH:/usr/local/mysql/bin
[[email protected] mysql]# ps -ef | grep mysqlroot 25130 1 0 15:16 pts/1 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/usr/local/mysql/data --pid-file=/usr /local/mysql/data/localhost.localdomain.pidmysql 25215 25130 1 15:16 pts/1 00:00:42 /usr/local/mysql/bin/mysqld --basedir=/usr/local/=mysql --data /usr/local/mysql/data --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=localhost.localdomain.err --pid-file=/usr/local /mysql/data/localhost.localdomain.pidroot 26171 21375 0 16:21 pts/1 00:00:00 mysql -uroot -px xxxxxxxxxxxxroot 26191 25365 0 16:20 pts:02color:-autocolor=mysq

  1. SELECT INTO en tabellvariabel i T-SQL

  2. radera kolumnen finns inte

  3. MySQL COUNT DISTINKT

  4. Hur man hittar namnet på en begränsning i SQL Server