MySQL е популярна система за управление на база данни, използвана като доставчик на съхранение на данни за хиляди уеб и сървърни приложения. Това ръководство ще помогне на начинаещите да започнат работа с MySQL на Arch Linux. Ако искате да разположите MySQL като част от стек от приложения, разгледайте нашите ръководства за LEMP и LAMP.
Системна конфигурация
Уверете се, че вашият /etc/hosts
файл има правилни записи, подобни на показаните по-долу. Заменете „12.34.56.78“ с публичния адрес на вашия Linode, „име на сървър“ с краткото си име на хост и „mydomain.com“ с името на домейна на вашата система.
- Файл:/ etc/hosts
127.0.0.1 localhost.localdomain localhost 12.34.56.78 servername.mydomain.com servername
Задайте името на хоста на вашата система, като зададете HOSTNAME=
стойност в /etc/rc.conf
файл.
Инсталирайте MySQL
Издайте следните команди, за да актуализирате вашата система и да инсталирате MySQL:
pacman -Syu
pacman -S mysql
Ще искате да добавите mysqld
демон към DAEMONS-()
масив в края на /etc/rc.conf
файл, за да гарантирате, че процесът на mysql започва след следващия цикъл на рестартиране.
Сървърният пакет MySQL ще бъде инсталиран на вашия сървър, заедно със зависимости и клиентски библиотеки. Стартирайте MySQL, като изпълните следната команда:
/etc/rc.d/mysqld start
Конфигуриране на MySQL
След като инсталирате MySQL, се препоръчва да стартирате mysql_secure_installation
, програма, която помага за защитата на MySQL. Докато изпълнявате mysql_secure_installation
, ще ви бъде предоставена възможността да промените паролата за root на MySQL, да премахнете анонимни потребителски акаунти, да деактивирате влизането в root извън localhost и да премахнете тестови бази данни. Препоръчително е да отговорите с „да“ на тези опции. Ако бъдете подканени да презаредите таблиците с привилегии, изберете да. Изпълнете следната команда, за да изпълните програмата:
mysql_secure_installation
По подразбиране MySQL слуша само вътрешни връзки. Ако планирате да се свържете с вашата база данни чрез TCP/IP, ще трябва да премахнете или коментирате (например да поставите префикс на реда с #
) добавете bind-address
ред във файла my.cnf. както следва:
- Файл:/ etc/mysql/my.cnf
1 2
# skip-networking bind-address - 127.0.0.1
Разрешаването на неограничен достъп до MySQL на публичен IP не се препоръчва, но можете да промените адреса, който слуша, като промените bind-address
параметър. Ако решите да свържете MySQL към вашия публичен IP адрес, трябва да приложите правила за защитната стена, които позволяват връзки само от конкретни IP адреси.
Консултирайте се с раздела „Повече информация“ в края на този урок за допълнителни ресурси, които се отнасят до конфигурацията на MySQL. Издайте следната команда, за да рестартирате демона:
/etc/rc.d/mysqld restart
Моля, вижте нашето ръководство за отдалечен достъп до MySQL за информация относно свързването с вашите бази данни с локални клиенти.
Използвайте MySQL
Стандартният инструмент за взаимодействие с MySQL е mysql
клиентска програма. За да започнете, издайте следната команда при подкана:
mysql -u root -p
Ще бъдете подканени да въведете паролата на root MySQL потребителя. Въведете паролата, която сте задали, когато сте инсталирали MySQL, и ще ви се покаже дисплея на MySQL монитора:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.5.9-log Source distribution
Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
mysql>
За да генерирате списък с команди за подканата на MySQL, въведете \h
:
List of all MySQL commands:
Note that all text commands must be first on line and end with ';'
? (\?) Synonym for `help'.
clear (\c) Clear the current input statement.
connect (\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\d) Set statement delimiter.
edit (\e) Edit command with $EDITOR.
ego (\G) Send command to mysql server, display result vertically.
exit (\q) Exit mysql. Same as quit.
go (\g) Send command to mysql server.
help (\h) Display this help.
nopager (\n) Disable pager, print to stdout.
notee (\t) Don't write into outfile.
pager (\P) Set PAGER [to_pager]. Print the query results via PAGER.
print (\p) Print current command.
prompt (\R) Change your mysql prompt.
quit (\q) Quit mysql.
rehash (\#) Rebuild completion hash.
source (\.) Execute an SQL script file. Takes a file name as an argument.
status (\s) Get status information from the server.
system (\!) Execute a system shell command.
tee (\T) Set outfile [to_outfile]. Append everything into given outfile.
use (\u) Use another database. Takes database name as argument.
charset (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets.
warnings (\W) Show warnings after every statement.
nowarning (\w) Don't show warnings after every statement.
For server side help, type 'help contents'
mysql>
Нека създадем база данни и да й присвоим потребител. Издайте следните команди в подканата на MySQL:
CREATE DATABASE testdb;
CREATE USER 'testuser'@localhost IDENTIFIED BY 'CHANGEME';
GRANT ALL PRIVILEGES ON testdb.* TO 'testuser'@localhost;
exit
Сега нека влезем обратно в MySQL клиента като testuser
и създайте примерна таблица, наречена „клиенти“. Издайте следните команди:
mysql -u testuser -p
USE testdb;
CREATE TABLE customers (customer_id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, first_name TEXT, last_name TEXT);
exit
Това създава таблица с поле за идентификатор на клиента от типа INT за цяло число (автоматично увеличено за нови записи, използвано като първичен ключ), както и две полета за съхранение на името на клиента. Разбира се, вероятно бихте искали да съхранявате много повече информация от тази за клиента, но въпреки това това е добър пример за често срещан случай.
Как да нулирате root паролата на MySQL
Ако сте забравили вашата root MySQL парола, можете да я нулирате, като издадете следните команди:
/etc/rc.d/mysqld stop
mysqld_safe --skip-grant-tables &
mysql -u root
Следната част от нулирането на паролата вече ще се извърши в клиентската програма MySQL:
USE mysql;
UPDATE user SET PASSWORD-PASSWORD("CHANGEME") WHERE User-'root';
FLUSH PRIVILEGES;
exit
И накрая, рестартирайте MySQL, като издадете следната команда:
/etc/rc.d/mysqld restart
Настройка на MySQL
MySQL Tuner е полезен инструмент, който се свързва с работещ екземпляр на MySQL и предоставя препоръки за конфигурация въз основа на работното натоварване. В идеалния случай MySQL екземплярът трябва да работи поне 24 часа, преди да стартира тунера. Колкото по-дълго е работил екземплярът, толкова по-добри съвети ще предостави MySQL Tuner.
За да инсталирате MySQL Tuner, изпълнете следните команди:
pacman -S wget
wget http://mysqltuner.pl/mysqltuner.pl
chmod 755 mysqltuner.pl
За да стартирате MySQL Tuner, просто въведете:
./mysqltuner.pl
Моля, имайте предвид, че този инструмент е предназначен да предоставя предложения за конфигурация и е отлична отправна точка. Би било разумно да се извърши допълнително проучване за настройка на конфигурации въз основа на приложението(ата), използващо MySQL*. *
Повече информация
Може да пожелаете да се консултирате със следните ресурси за допълнителна информация по тази тема. Въпреки че те са предоставени с надеждата, че ще бъдат полезни, моля, имайте предвид, че не можем да гарантираме за точността или навременността на външно хостваните материали.
- Справочно ръководство за MySQL 5.1
- Ръководство за PHP MySQL
- Примери за Perl DBI за DBD::mysql
- Ръководство за потребителя на MySQLdb