<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Archiwa MySQL - soban</title>
	<atom:link href="https://soban.pl/pl/category/mysql/feed/" rel="self" type="application/rss+xml" />
	<link>https://soban.pl/pl/category/mysql/</link>
	<description>IT, Linux, Servers, Security</description>
	<lastBuildDate>Thu, 07 Nov 2024 15:21:16 +0000</lastBuildDate>
	<language>pl-PL</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.1</generator>
	<item>
		<title>Rozwiązywanie problemów związanych z performance_schema w MySQL</title>
		<link>https://soban.pl/pl/rozwiazywanie-problemow-zwiazanych-ze-schematem-wydajnosci-w-mysql/</link>
		
		<dc:creator><![CDATA[soban]]></dc:creator>
		<pubDate>Thu, 07 Nov 2024 12:30:31 +0000</pubDate>
				<category><![CDATA[MySQL]]></category>
		<guid isPermaLink="false">https://soban.pl/?p=510</guid>

					<description><![CDATA[<p>Podczas codziennej pracy z bazami danych MySQL, mogą pojawić się specyficzne wyzwania, takie jak brakujące tabele lub błędy związane z nierozpoznaną bazą danych performance_schema. Te problemy mogą znacząco wpływać na wydajność i stabilność systemów bazodanowych, a ich diagnozowanie i rozwiązywanie bywa często skomplikowane i czasochłonne. Aby ułatwić to zadanie, stworzyłem ten przewodnik, który jest wynikiem [&#8230;]</p>
<p>Artykuł <a href="https://soban.pl/pl/rozwiazywanie-problemow-zwiazanych-ze-schematem-wydajnosci-w-mysql/">Rozwiązywanie problemów związanych z performance_schema w MySQL</a> pochodzi z serwisu <a href="https://soban.pl/pl">soban</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1021" height="1024" src="https://soban.pl/wp-content/uploads/2024/11/performance_schema_mysql-1021x1024.jpg" alt="" class="wp-image-505" srcset="https://soban.pl/wp-content/uploads/2024/11/performance_schema_mysql-1021x1024.jpg 1021w, https://soban.pl/wp-content/uploads/2024/11/performance_schema_mysql-300x300.jpg 300w, https://soban.pl/wp-content/uploads/2024/11/performance_schema_mysql-150x150.jpg 150w, https://soban.pl/wp-content/uploads/2024/11/performance_schema_mysql-768x770.jpg 768w, https://soban.pl/wp-content/uploads/2024/11/performance_schema_mysql.jpg 1136w" sizes="(max-width: 1021px) 100vw, 1021px" /></figure>



<p><br>Podczas codziennej pracy z bazami danych MySQL, mogą pojawić się specyficzne wyzwania, takie jak brakujące tabele lub błędy związane z nierozpoznaną bazą danych <code>performance_schema</code>. Te problemy mogą znacząco wpływać na wydajność i stabilność systemów bazodanowych, a ich diagnozowanie i rozwiązywanie bywa często skomplikowane i czasochłonne. Aby ułatwić to zadanie, stworzyłem ten przewodnik, który jest wynikiem moich doświadczeń oraz sprawdzonych praktyk. Zapewniam kompleksowe podejście do identyfikacji i naprawy problemów związanych z <code>performance_schema</code>. Jest to dosyć proste zaimportowanie schematu z nowo zbudowanej bazy danych.<br><br>Oczywiście przed całą operacją należy wykonać backup bazy najlepiej.</p>



<h3 class="wp-block-heading">Początkowa diagnoza w MySQL</h3>



<p>Zacznij od zidentyfikowania problemu w powłoce MySQL:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">SHOW VARIABLES LIKE 'default_storage_engine';
ERROR 1146 (42S02): Table 'performance_schema.session_variables' doesn't exist
USE performance_schema;
ERROR 1049 (42000): Unknown database 'performance_schema';</pre></div>



<h3 class="wp-block-heading">Utworzenie nowego schematu Performance Schema w MySQL</h3>



<p>Tworzenie nowego schematu performance schema z linii komend MySQL:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">CREATE DATABASE performance_schema;
shutdown;
\q</pre></div>



<h3 class="wp-block-heading">Operacje serwerowe do ustanowienia nowego środowiska MySQL</h3>



<p>Wracamy do systemu, aby skonfigurować czyste środowisko MySQL:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">systemctl stop mysql.service
mkdir /var/lib/mysql_new
mysqld --initialize --user=mysql --basedir=/usr --datadir=/var/lib/mysql_new
chown -R mysql:mysql /var/lib/mysql_new
cd /var/lib/mysql_new</pre></div>



<p>Następnie, uruchom MySQL w trybie bezpiecznym, aby skonfigurować go &#8211; bez zewnętrznych przerwań sieciowych:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">sudo -u mysql mysqld_safe --datadir=/var/lib/mysql_new --skip-grant-tables --skip-networking</pre></div>



<h3 class="wp-block-heading">Konfiguracja i weryfikacja w MySQL</h3>



<p>Powróć do linii komend MySQL, aby zweryfikować konfigurację i skonfigurować nową bazę danych:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">mysql -u root
SHOW DATABASES;
USE performance_schema;
SHOW TABLES;</pre></div>



<p>Jak widać, tutaj performance_schema działa poprawnie.<br>Zaktualizuj hasło roota w środowisku MySQL, aby zabezpieczyć nową instalację:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">USE mysql;
UPDATE user SET authentication_string=PASSWORD('NewSecurePassword');
FLUSH PRIVILEGES;
shutdown;
\q</pre></div>



<p>Uruchom ponownie MySQL w trybie bezpiecznym, aby upewnić się, że wszystkie konfiguracje zostały zastosowane:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">sudo -u mysql mysqld_safe --datadir=/var/lib/mysql_new --skip-networking</pre></div>



<h3 class="wp-block-heading">Konfiguracji MySQL na serwerze w celu uruchomienia nowej bazy danych</h3>



<p>Po zabezpieczeniu nowej konfiguracji MySQL, zaktualizuj konfigurację serwera, aby używać nowego katalogu danych:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">vi /etc/mysql/my.cnf
# Zmień datadir na:
datadir=/var/lib/mysql_new</pre></div>



<p>Uruchom ponownie usługę MySQL, aby plik my.cnf został wczytany podczas startowania mysqla:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">systemctl start mysql.service</pre></div>



<h3 class="wp-block-heading">Eksportuj i przywróć schemat Performance Schema w MySQL</h3>



<p>Z nową konfiguracją, eksportuj <code>performance_schema</code> za pomocą poleceń MySQL i przygotuj się do jego przywrócenia:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">mysqldump -u root -p --no-data --skip-lock-tables performance_schema &gt; /root/performance_schema.sql</pre></div>



<p>Należy wyłączyć mysqla:<br></p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">shutdown;
\q</pre></div>



<p>Przywróć oryginalny katalog danych MySQL na serwerze, uruchom ponownie usługę MySQL i zaimportuj wyeksportowany schemat:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">vi /etc/mysql/my.cnf
# Zmień datadir z powrotem na:
datadir=/var/lib/mysql_old
systemctl start mysql.service
mysql -u root -p performance_schema &lt; /root/performance_schema.sql
systemctl restart mysql.service</pre></div>



<p>Upewnij się, że domyślny silnik przechowywania działa, np:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">SHOW VARIABLES LIKE 'default_storage_engine';
+------------------------+--------+
| Variable_name          | Value  |
+------------------------+--------+
| default_storage_engine | InnoDB |
+------------------------+--------+
1 row in set (0.00 sec)</pre></div>



<div class="wp-block-urvanov-syntax-highlighter-code-block"></div>



<p>Nie zapomnij usunąć śmieci:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">rm -rf /var/lib/mysql_new/ /root/performance_schema.sql</pre></div>



<p>Jeśli dotarłeś tutaj, pamiętaj o usunięciu backupu bazy danych &#8211; o ile wszystko działa. Bo wykonałeś takowy? 🙂</p>
<p>Artykuł <a href="https://soban.pl/pl/rozwiazywanie-problemow-zwiazanych-ze-schematem-wydajnosci-w-mysql/">Rozwiązywanie problemów związanych z performance_schema w MySQL</a> pochodzi z serwisu <a href="https://soban.pl/pl">soban</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Rozwiązywanie Problemu MySQL &#8211; Error_code: 1114</title>
		<link>https://soban.pl/pl/rozwiazywanie-problemu-mysql-error_code-1114/</link>
		
		<dc:creator><![CDATA[soban]]></dc:creator>
		<pubDate>Wed, 17 Apr 2024 13:36:26 +0000</pubDate>
				<category><![CDATA[MySQL]]></category>
		<guid isPermaLink="false">https://soban.pl/?p=448</guid>

					<description><![CDATA[<p>Wprowadzenie Pracując z MySQL, można napotkać różne błędy, które mogą zakłócić działanie systemu. Kod błędu 1114 jest jednym z nich i wskazuje na sytuację, gdy tabela, do której użytkownik próbuje zapisać dane, jest pełna. Ten problem jest szczególnie znaczący w systemie replikacji MySQL, gdzie jego rozwiązanie jest kluczowe dla zapewnienia ciągłości pracy. Opis problemu Błąd [&#8230;]</p>
<p>Artykuł <a href="https://soban.pl/pl/rozwiazywanie-problemu-mysql-error_code-1114/">Rozwiązywanie Problemu MySQL &#8211; Error_code: 1114</a> pochodzi z serwisu <a href="https://soban.pl/pl">soban</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<figure class="wp-block-image size-full is-resized"><img decoding="async" width="834" height="841" src="https://soban.pl/wp-content/uploads/2024/04/mysql_error_1114-1.png" alt="" class="wp-image-459" style="width:424px;height:auto" srcset="https://soban.pl/wp-content/uploads/2024/04/mysql_error_1114-1.png 834w, https://soban.pl/wp-content/uploads/2024/04/mysql_error_1114-1-298x300.png 298w, https://soban.pl/wp-content/uploads/2024/04/mysql_error_1114-1-150x150.png 150w, https://soban.pl/wp-content/uploads/2024/04/mysql_error_1114-1-768x774.png 768w" sizes="(max-width: 834px) 100vw, 834px" /></figure>



<h4 class="wp-block-heading"><br>Wprowadzenie</h4>



<p>Pracując z MySQL, można napotkać różne błędy, które mogą zakłócić działanie systemu. Kod błędu 1114 jest jednym z nich i wskazuje na sytuację, gdy tabela, do której użytkownik próbuje zapisać dane, jest pełna. Ten problem jest szczególnie znaczący w systemie replikacji MySQL, gdzie jego rozwiązanie jest kluczowe dla zapewnienia ciągłości pracy.</p>



<h4 class="wp-block-heading">Opis problemu</h4>



<p>Błąd 1114 manifestuje się komunikatem: &#8222;Could not execute Write_rows event on table docs; The table 'docs&#8217; is full&#8221;. Oznacza to, że nowe wiersze nie mogą zostać zapisane z powodu przekroczenia rozmiaru tabeli tymczasowej. Szczegółowy komunikat błędu może wyglądać tak:</p>



<p><strong>Zaloguj się do MySQL</strong>:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag"># mysql -u root -p</pre></div>



<p><strong>Zmień wartości zmiennej</strong>:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">SET GLOBAL tmp_table_size = 268435456;  -- Ustawienie na 256M
SET GLOBAL max_heap_table_size = 268435456;  -- Ustawienie na 256M</pre></div>



<p>Po wprowadzeniu tych zmian, wszystkie nowe połączenia do serwera MySQL będą używać tych zaktualizowanych wartości. Możesz je sprawdzić, wykonując:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">SHOW GLOBAL VARIABLES LIKE 'tmp_table_size';
SHOW GLOBAL VARIABLES LIKE 'max_heap_table_size';</pre></div>



<p>Albo<br></p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">SELECT @@tmp_table_size, @@max_heap_table_size;</pre></div>



<p><br>Teraz replikacje można wznowić i powinna lepiej działać. Jednak należy pamiętaj, o modyfikacji konfiguracji, aby po restarcie mysqla zmienne te zostały poprawnie ustawione. Może być koniecznie tutaj wznowienie np replikacji (jeśli wcześniej została zatrzymana):</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">START SLAVE;</pre></div>



<p>Jeśli problem został rozwiązany, na tym etapie sprawdzenie stanu replikacji:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag">show slave status \G</pre></div>



<p>Nie powinien zwracać żadnych błędów.<br><br><strong>Modyfikacja pliku konfiguracyjnego <code>/etc/mysql/my.cnf</code></strong>:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag"># cat /etc/mysql/my.cnf
...
tmp_table_size=256M
max_heap_table_size=256M
...</pre></div>



<p><strong>Restart usługi MySQL</strong>:</p>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag"># systemctl restart mysql</pre></div>



<p>Przed restartem usługi zalecane jest wykonanie <code>SHUTDOWN;</code> w kliencie MySQL.<br>Należy pamiętać o wznowieniu replikacji.<br></p>



<h4 class="wp-block-heading">Ważne uwagi</h4>



<ul class="wp-block-list">
<li><strong>Zasoby systemowe</strong>: Upewnij się, że serwer dysponuje wystarczającą ilością pamięci RAM do obsługi zwiększonych wartości zmiennych.</li>



<li><strong>Monitoring wydajności</strong>: Po dokonaniu zmian monitoruj wydajność, aby sprawdzić, czy problem został rozwiązany.</li>



<li><strong>Trwałość konfiguracji</strong>: Zmiany w pliku konfiguracyjnym powinny być trwałe, aby uniknąć resetowania wartości po restarcie.</li>
</ul>



<h4 class="wp-block-heading">Dodatkowe kroki sprawdzające</h4>



<ul class="wp-block-list">
<li><strong>Sprawdzenie dostępnej przestrzeni dyskowej</strong>: Możliwe, że problem wynika również z braku dostępnej przestrzeni na dysku. Można to sprawdzić za pomocą poniższej komendy:</li>
</ul>



<div class="wp-block-urvanov-syntax-highlighter-code-block"><pre class="urvanov-syntax-highlighter-plain-tag"># df -h</pre></div>



<h4 class="wp-block-heading">Podsumowanie</h4>



<p>Rozwiązanie problemu związanego z kodem błędu 1114 w replikacji MySQL wymaga zrozumienia i dostosowania konfiguracji systemu. Opisane kroki pokazują, jak poprzez zwiększenie rozmiaru tabeli tymczasowej można zapobiec występowaniu tego błędu, co umożliwia sprawne działanie systemu replikacji.</p>
<p>Artykuł <a href="https://soban.pl/pl/rozwiazywanie-problemu-mysql-error_code-1114/">Rozwiązywanie Problemu MySQL &#8211; Error_code: 1114</a> pochodzi z serwisu <a href="https://soban.pl/pl">soban</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
