Skocz do zawartości

Problem z instalacją mysql57-server na systemie FreeBSD 13.2

Opublikowano

Cześć.

Pisząc ten temat chciałbym po pierwsze to rozwiązać mój problem czyt. zaktualizować oprogramowanie do 13.2 oraz przygotować do kompilacji system, a co za tym idzie bardzo chętnie się czegoś nauczyć wreszcie.

 

Może opiszę swój problem dokładniej. Chęć aktualizacji pojawiła się w momencie gdy zobaczyłem, że w wersji entry v1.5 jest zaktualizowany bsd do 13.2. Więc jako użytkownik wersji v1.4 postanowiłem mieć najbardziej aktualną wersję i na własną rękę zaktualizować bsd do 13.2. Niestety wyszły pewne komplikacje. Tworząc najnowszy backup swoich plików zrobiłem reinstalla vps. Od razu wdrożając system 13.2 lecz 64bit. Na tej wersji przeszedłem do konfiguracji vps pod uruchomienie metina, w momencie gdy chcialem zainstalować mysql 5.7 wyskoczył taki błąd:

 

pkg: No packages available to install matching 'mysql57-server' have been found in the repositories

 

Rozumiem to tak, że po prostu wersja 13.2 ma jakiś nowszy mysql? Czy może pi***dole głupoty teraz. Rozjaśnijcie.

 

Po tym problemie i przeszukaniu otchłani internetu zdecydowałem się na ponowny reinstall vps tym razem na system 12.4 i zaktualizowanie go do wersji 13.2. A więc tak zrobiłem, wszystko szło dobrze. Do aktualizacji użyłem tego polecenia

freebsd-update upgrade -r 13.2-RELEASE

 

Wszystko się pobrało, później użyłem polecenia

 

freebsd-update install

 

 

I system poprosił mnie o shutdown jak to ma w zwyczaju po instalacji. A więc tak zrobiłem.

 

Po shutdownie jak już się zalogowałem, chciałem dokończyć proces instalacji a więc ponownie polecenie freebsd-update install i tutaj zdziwiłem się. Oczywiście rozumiałem, że może to chwilę potrwać, chociaż akurat instalacja nigdy nie trwała aż tak długo. Zdążyłem pójść do biedry po piwka, wróciłem i nadal był przed moimi oczami taki widok: ( mineło z 20 minut )
obraz.png.0b073caf2686dc994e2aa1eb39f38f54.png

 

Po jeszcze paru minutach, wyrzuciło mnie z putty i po tym serwer już nie chciał wstać, musiałem zrobić reinstall ponownie. I na tym momencie stanąłem.

 

Oczywiście wspomnę jeszcze o tym, że próbowałem wrócić do starego 12.4 ale po instalacji i przeczytaniu wiadomości na forum dowiedziałem się, że przestało być wspierane, a więc nawet polecenie pkg upgrade nie chciało zadziałać 🙂

 

 

Tak jak pisałem na początku, chciałbym się czegoś nauczyć rozwiązując ten problem. Społeczność metina z tego co zauważyłem jest strasznie negatywnie nastawiona do nowych. Sytuacja typu "Ale to jest proste, jak możesz tego nie wiedzieć" ale typ nie mówi że siedzi w tym już z 10 lat i dla niego to jest łatwe. Oczywiście to wymyślony przykład. Chodzi mi o to, że traktujmy tych nowicjuszy, nie mówię tu stricte o mnie a o wszystkich którzy nie chcą tylko zrobić CTRL C i CTRL V, a faktycznie się czegoś poduczyć, trochę lepiej. Uczmy ich. Dzięki do każdego który odpowie w tym temacie.

Rozwiązane przez atk

Przejdź do rozwiązania

Featured Replies

Opublikowano

Wygląda na to, że system FreeBSD 13.2 nie ma już dostępnej wersji MySQL 5.7. Sprawdziłem to właśnie i w repozytorium są dostępne tylko takie wersje:

 

image.png

 

Pliki Entry-core nie są portowane pod MySQL 8.0. Na ten moment nie wspieram tej wersji, ale będzie wsparcie niebawem.

Pozostaje ci jedynie instalacja MySQL 5.7 z kodu źródłowego. Kod źródłowy znajdziesz pod tym adresem: Mysql-5.7-source code strona producenta

Musisz ręcznie skompilować MySQL 5.7 i zainstalować w systemie. Innego sposobu nie ma.

 

  • Sevence zmienił(a) tytuł na Problem z instalacją mysql57-server na systemie FreeBSD 13.2
Opublikowano
  • Autor

A więc, podziele się tym co zrobiłem.

 

Po pierwsze pobrałem kod źródłowy (Daje komendy żeby było łatwiej osobie która w przyszłości będzie miała problem i dla was, bo może jakiś błąd zauważycie)

wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.44.tar.gz

Wiadomo rozpakować:

tar zxvf mysql-5.7.44.tar.gz
cd mysql-5.7.44

 

Gdzieś w necie wyczytałem że mysql wymaga bilbiotek do kompilacji takich jak cmake i gcc a wiec:

pkg install cmake gcc

 

I tu zaczęły się jakieś schody ale dałem radę:

cmake . -DWITH_BOOST=/usr/local/include/boost/

 

Po tym poleceniu wyskoczył komunikat jako, że cmake nie może znaleźc odpowiedniej wersji biblioteki Boost, a więc:
 

wget https://sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz

Rozpakowujemy...

 

cd boost_1_59_0
./bootstrap.sh
./b2 install

Po wprowadzeniu tych komend czekałem bardzo długo na koniec 🫠

Potem:

 

cd /mysql-5.7.44
cmake . -DWITH_BOOST=/usr/local/include/boost/

 

I kompilowalem:

make
make install

 

Po poleceniu make było w trakcie kompilacji parę błędu z kompatybilnością. Najczęściej rozwiązaniem było wejście do danego pliczku poprzez nano albo inaczej i zmienienie wartosci null na false.

 

 

Po tym wszystkim, chciałem odpalić mysql komendą

service mysql-server start

Niestety moim oczom pokazał się taki komunikat:

 

root@vps39241:/ # service mysql-server start
mysql-server does not exist in /etc/rc.d or the local startup
directories (/usr/local/etc/rc.d), or is not executable
root@vps39241:/ #

 

Nie ma ? A więc trzeba go pobrać!

wget https://github.com/mysql/mysql-server/blob/8.0/support-files/mysql.server.sh

 

Ponownie sprobowalem włączyć i ten sam błąd.

 

Pliki są chyba w dobrych lokalizacjach. Dla wszystkiego wrzucilem w dwie lokalizacje w /etc/rc.d oraz /usr/local/etc/rc.d

obraz.png.a616eb7c797c0e3bed5505db81afabf9.pngobraz.png.c8fcdd85755d1acf41bed0c519915285.png

 

Co teraz zrobic aby odpalic mysql? @Sevence

 

obraz.png

Edytowane przez atk

Opublikowano

/etc/rc.conf

 

mysql_enable="yes"

Opublikowano
  • Autor
1 minutę temu, Roggerovsky napisał(a):

/etc/rc.conf

 

mysql_enable="yes"

To zrobilem na samym początku

obraz.png.db5ae91063bb3f8eb990d221d72751cf.png

Dziękuje za odpowiedź!

Opublikowano

Wygląda na to że do pliku startowego nie masz dopisanego tego co kolega wyżej podpowiedział. 

 

/etc/rc.conf 

mysql_enable="YES"

 

Jednak rozumiem że to zrobiłeś i nadal jest ten sam problem?

Opublikowano
  • Autor
1 minutę temu, Sevence napisał(a):

Wygląda na to że do pliku startowego nie masz dopisanego tego co kolega wyżej podpowiedział. 

 

/etc/rc.conf 

mysql_enable="YES"

 

Jednak rozumiem że to zrobiłeś i nadal jest ten sam problem?

obraz.png.53831ee8b1c5e850625e5877f66da04f.png

Opublikowano

I jaki błąd podczas uruchamiania? 

Opublikowano
  • Autor
1 minutę temu, Sevence napisał(a):

I jaki błąd podczas uruchamiania? 

No, taki sam. Zmiany w rc.conf wprowadzałem juz wczesniej.

 

 

root@vps39241:/ # service mysql-server stop
mysql-server does not exist in /etc/rc.d or the local startup
directories (/usr/local/etc/rc.d), or is not executable
root@vps39241:/ # service mysql-server start
mysql-server does not exist in /etc/rc.d or the local startup
directories (/usr/local/etc/rc.d), or is not executable
root@vps39241:/ #

 

 

Może coś z skryptem jest źle?

Edytowane przez atk

Opublikowano

Znaczy do katalogu /usr/local/etc/rc.d nie dodajesz tego wpisu jedynie do /etc/rc.conf

Sprawdź czy masz skrypt startowy w /usr/local/etc/rc.d/ pod nazwą mysql-server

Opublikowano
  • Autor
16 minut temu, Sevence napisał(a):

Znaczy do katalogu /usr/local/etc/rc.d nie dodajesz tego wpisu jedynie do /etc/rc.conf

Tak dobrze Cie zrozumiałem.

16 minut temu, Sevence napisał(a):

Sprawdź czy masz skrypt startowy w /usr/local/etc/rc.d/ pod nazwą mysql-server.

 

A wiec:

obraz.png.f200918f26224437e20da2472533bb96.png

 

obraz.png.abbcdfbdba99303db0041a1bd5d43efa.png

 

Nadal taki sam błąd.

 

 

Może podrzuce zawartość skryptu, pobrałem go z neta, a wiec może w nim jest jakis problem:

 

Spoiler
Tak wyglada ten skrypt? Nadaje sie on?

{"payload":{"allShortcutsEnabled":false,"fileTree":{"support-files":{"items":[{"name":"CMakeLists.txt","path":"support-files/CMakeLists.txt","contentType":"file"},{"name":"build-tags","path":"support-files/build-tags","contentType":"file"},{"name":"compiler_warnings.supp","path":"support-files/compiler_warnings.supp","contentType":"file"},{"name":"mysql-log-rotate.in","path":"support-files/mysql-log-rotate.in","contentType":"file"},{"name":"mysql.m4","path":"support-files/mysql.m4","contentType":"file"},{"name":"mysql.server.sh","path":"support-files/mysql.server.sh","contentType":"file"},{"name":"mysqld_multi.server","path":"support-files/mysqld_multi.server","contentType":"file"},{"name":"mysqlrouter-log-rotate-systemd.in","path":"support-files/mysqlrouter-log-rotate-systemd.in","contentType":"file"},{"name":"mysqlrouter-log-rotate.in","path":"support-files/mysqlrouter-log-rotate.in","contentType":"file"}],"totalCount":9},"":{"items":[{"name":"Docs","path":"Docs","contentType":"directory"},{"name":"client","path":"client","contentType":"directory"},{"name":"cmake","path":"cmake","contentType":"directory"},{"name":"components","path":"components","contentType":"directory"},{"name":"doxygen_resources","path":"doxygen_resources","contentType":"directory"},{"name":"extra","path":"extra","contentType":"directory"},{"name":"include","path":"include","contentType":"directory"},{"name":"libbinlogevents","path":"libbinlogevents","contentType":"directory"},{"name":"libbinlogstandalone","path":"libbinlogstandalone","contentType":"directory"},{"name":"libchangestreams","path":"libchangestreams","contentType":"directory"},{"name":"libmysql","path":"libmysql","contentType":"directory"},{"name":"libservices","path":"libservices","contentType":"directory"},{"name":"man","path":"man","contentType":"directory"},{"name":"mysql-test","path":"mysql-test","contentType":"directory"},{"name":"mysys","path":"mysys","contentType":"directory"},{"name":"packaging","path":"packaging","contentType":"directory"},{"name":"plugin","path":"plugin","contentType":"directory"},{"name":"router","path":"router","contentType":"directory"},{"name":"scripts","path":"scripts","contentType":"directory"},{"name":"share","path":"share","contentType":"directory"},{"name":"sql-common","path":"sql-common","contentType":"directory"},{"name":"sql","path":"sql","contentType":"directory"},{"name":"storage","path":"storage","contentType":"directory"},{"name":"strings","path":"strings","contentType":"directory"},{"name":"support-files","path":"support-files","contentType":"directory"},{"name":"testclients","path":"testclients","contentType":"directory"},{"name":"unittest","path":"unittest","contentType":"directory"},{"name":"utilities","path":"utilities","contentType":"directory"},{"name":"vio","path":"vio","contentType":"directory"},{"name":".clang-format","path":".clang-format","contentType":"file"},{"name":".clang-tidy","path":".clang-tidy","contentType":"file"},{"name":".gitattributes","path":".gitattributes","contentType":"file"},{"name":".gitconfig","path":".gitconfig","contentType":"file"},{"name":".gitignore","path":".gitignore","contentType":"file"},{"name":"CMakeLists.txt","path":"CMakeLists.txt","contentType":"file"},{"name":"Doxyfile-ignored","path":"Doxyfile-ignored","contentType":"file"},{"name":"Doxyfile.in","path":"Doxyfile.in","contentType":"file"},{"name":"INSTALL","path":"INSTALL","contentType":"file"},{"name":"LICENSE","path":"LICENSE","contentType":"file"},{"name":"MYSQL_VERSION","path":"MYSQL_VERSION","contentType":"file"},{"name":"README","path":"README","contentType":"file"},{"name":"config.h.cmake","path":"config.h.cmake","contentType":"file"},{"name":"configure.cmake","path":"configure.cmake","contentType":"file"},{"name":"run_doxygen.cmake","path":"run_doxygen.cmake","contentType":"file"}],"totalCount":44}},"fileTreeProcessingTime":13.561691000000001,"foldersToFetch":[],"reducedMotionEnabled":null,"repo":{"id":24

 

 

Edytowane przez atk

Opublikowano

Skrypt startu ma się nazywać mysql-server bez końcówki .sh

Wrzucam tu zawartość mojego skryptu mysql-server:

 

#!/bin/sh

# PROVIDE: mysql
# REQUIRE: LOGIN
# KEYWORD: shutdown

#
# Add the following line to /etc/rc.conf to enable mysql:
# mysql_enable (bool):	Set to "NO" by default.
#			Set it to "YES" to enable MySQL.
# mysql_dbdir (str):	Default to "/var/db/mysql"
#			Base database directory.
# mysql_confdir (str):	Default to "/usr/local/etc/mysql"
#			Base configuration directory.
# mysql_optfile (str):	Server-specific option file.
#			Set it in the rc.conf or default behaviour of
#			`mysqld_safe` itself, will be picking
#			${mysql_confdir}/my.cnf if it exists.
# mysql_pidfile (str):	Custom PID file path and name.
#			Default to "${mysql_dbdir}/${hostname}.pid".
# mysql_args (str):	Custom additional arguments to be passed
#			to mysqld_safe (default empty).
#

. /etc/rc.subr

name="mysql"
rcvar=mysql_enable

load_rc_config $name

: ${mysql_enable="NO"}
: ${mysql_dbdir="/var/db/mysql"}
: ${mysql_confdir="/usr/local/etc/mysql"}
if [ -f "${mysql_confdir}/my.cnf" ]; then
: ${mysql_optfile="${mysql_confdir}/my.cnf"}
elif [ -f "${mysql_dbdir}/my.cnf" ]; then
: ${mysql_optfile="${mysql_dbdir}/my.cnf"}
fi
if [ ! -z "${mysql_optfile}" ]; then
mysql_extra="--defaults-extra-file=${mysql_optfile}"
fi


mysql_user="mysql"
: ${hostname:=`/bin/hostname`}
pidfile=${mysql_pidfile:-"${mysql_dbdir}/${hostname}.pid"}
command="/usr/sbin/daemon"
command_args="-c -f /usr/local/bin/mysqld_safe ${mysql_extra} --basedir=/usr/local --datadir=${mysql_dbdir} --pid-file=${pidfile} --user=${mysql_user} ${mysql_args}  "
procname="/usr/local/libexec/mysqld"
start_precmd="${name}_prestart"
start_postcmd="${name}_poststart"
mysql_install_db="/usr/local/bin/mysql_install_db"
mysql_install_db_args="${mysql_extra} --basedir=/usr/local --datadir=${mysql_dbdir} --mysqld-file=${procname} --user=${mysql_user}"

mysql_create_auth_tables()
{
	eval $mysql_install_db $mysql_install_db_args >/dev/null 2>/dev/null
}

mysql_prestart()
{
	if [ ! -d "${mysql_dbdir}/mysql/." ]; then
		mysql_create_auth_tables || return 1
	fi
	return 0
}

mysql_poststart()
{
	local timeout=15
	while [ ! -f "${pidfile}" -a ${timeout} -gt 0 ]; do
		timeout=$(( timeout - 1 ))
		sleep 1
	done
	return 0
}

run_rc_command "$1"
Opublikowano
  • Autor

A więc tak.

Dziękuje za skrypt. Podmieniłem go i usunąłem rozszerzenia .sh

 

Jest już lepiej niż było:

obraz.png.8dbf13a31948ce491521e3474f42f1fc.png

 

obraz.png.5ae37b77d7425429d16c2a18b9dd571f.png

 

Niby nie ma a jest, a to ciekawe? 🤠

Opublikowano

Może spróbuj przepuścić ten skrypt przez dos2unix 

Opublikowano

Weź postaw od nowa maszynę bo przecież to co robisz teraz to jest jakies 5 minut wraz z instalacja BSD

Opublikowano
  • Autor
2 minuty temu, Sevence napisał(a):

Może spróbuj przepuścić ten skrypt przez dos2unix 


root@vps39241:/ # dos2unix /usr/local/etc/rc.d/mysql-server
dos2unix: Command not found.
root@vps39241:/ #
root@vps39241:/ # pkg install dos2unix
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
The following 1 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
        dos2unix: 7.5.1

Number of packages to be installed: 1

The process will require 2 MiB more space.
423 KiB to be downloaded.

Proceed with this action? [y/N]: y
[1/1] Fetching dos2unix-7.5.1.pkg: 100%  423 KiB 433.3kB/s    00:01
Checking integrity... done (0 conflicting)
[1/1] Installing dos2unix-7.5.1...
[1/1] Extracting dos2unix-7.5.1: 100%
root@vps39241:/ # dos2unix /usr/local/etc/rc.d/mysql-server
dos2unix: converting file /usr/local/etc/rc.d/mysql-server to Unix format...
root@vps39241:/ # service mysql-server start
env: /etc/rc.d/mysql-server: No such file or directory
root@vps39241:/ #
root@vps39241:/ # dos2unix /etc/rc.d/mysql-server
dos2unix: converting file /etc/rc.d/mysql-server to Unix format...
root@vps39241:/ # service mysql-server start
/etc/rc.d/mysql-server: WARNING: failed precmd routine for mysql
root@vps39241:/ #

 

 

2 minuty temu, Marchewa napisał(a):

Weź postaw od nowa maszynę bo przecież to co robisz teraz to jest jakies 5 minut wraz z instalacja BSD

Właśnie tu nie chodzi do końca o to, żeby polecieć z poradnika. Gdzieś wchodzi w grę czysta satysfakcja. Ale widzę powoli, że będę do tego zmuszony.

Opublikowano
1 minutę temu, atk napisał(a):

root@vps39241:/ # dos2unix /usr/local/etc/rc.d/mysql-server
dos2unix: Command not found.
root@vps39241:/ #
root@vps39241:/ # pkg install dos2unix
Updating FreeBSD repository catalogue...
FreeBSD repository is up to date.
All repositories are up to date.
The following 1 package(s) will be affected (of 0 checked):

New packages to be INSTALLED:
        dos2unix: 7.5.1

Number of packages to be installed: 1

The process will require 2 MiB more space.
423 KiB to be downloaded.

Proceed with this action? [y/N]: y
[1/1] Fetching dos2unix-7.5.1.pkg: 100%  423 KiB 433.3kB/s    00:01
Checking integrity... done (0 conflicting)
[1/1] Installing dos2unix-7.5.1...
[1/1] Extracting dos2unix-7.5.1: 100%
root@vps39241:/ # dos2unix /usr/local/etc/rc.d/mysql-server
dos2unix: converting file /usr/local/etc/rc.d/mysql-server to Unix format...
root@vps39241:/ # service mysql-server start
env: /etc/rc.d/mysql-server: No such file or directory
root@vps39241:/ #
root@vps39241:/ # dos2unix /etc/rc.d/mysql-server
dos2unix: converting file /etc/rc.d/mysql-server to Unix format...
root@vps39241:/ # service mysql-server start
/etc/rc.d/mysql-server: WARNING: failed precmd routine for mysql
root@vps39241:/ #

 

 

Właśnie tu nie chodzi do końca o to, żeby polecieć z poradnika. Gdzieś wchodzi w grę czysta satysfakcja. Ale widzę powoli, że będę do tego zmuszony.

Ja robiłem bez poradnika żeby się własnie nauczyc jedynie co to sciagłem z neta mysql56 bo nie ma w repo

Opublikowano

Sprawdź logi mysql co tam się dzieje. Może nie masz nadanych uprawnień. Masz w ogóle zainstalowane to mysql? Zobacz /var/db/mysql bo wygląda jak by nie mogło wystartować. 

Opublikowano
  • Autor
4 minuty temu, Sevence napisał(a):

Sprawdź logi mysql co tam się dzieje. Może nie masz nadanych uprawnień. 

Hmm, nie wiem czy w dobrym miejscu patrze ale tu nie ma:

obraz.png.12d8942a1567162693d0bf8d0e4b9e41.png

 

Najpewniej coś takiego powinno być, ale nie znajduje pliczku

obraz.png.935e2d7b99151defd31fd3a3cc02faee.png

 

 

 

 

Jesli chodzi o chmody to, dla wszystkiego dodalem je jeszcze raz:

obraz.png.fbc748e6885a9d9241ff92344bb544bb.png

Opublikowano

No to nie zainstalowałeś poprawnie mysql z tego źródła bo nie masz wcale binarki. W tym temacie znajdziecie rozwiązanie:

 

Opublikowano
  • Autor
  • Rozwiązanie

Wystarczy zmienić w pkg na

pkg+http://pkg.FreeBSD.org/${ABI}/release_2

 

i mamy normalnie repo i można normalnie zainstalować mysql 5.7 na 13.2.

  • Sevence zablokował(a) ten temat
Gość
Ten temat został zamknięty. Brak możliwości dodania odpowiedzi.