Установка MySQL

Тут описывается нелёгкий путь настройки ОС FreeBSD, начиная с установки дистрибутива и заканчивая настройкой каждого сервиса
Ответить
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

Установка MySQL

Сообщение RomA »

Ставить будем из портов

Код: Выделить всё

cd /usr/ports/databases/mysql55-server
make install clean
Он спросил

Код: Выделить всё

                      ┌────────────────────────────────────────────────────────────────────┐
                      │                 Options for mysql-server 5.5.12                    │  
                      │ ┌────────────────────────────────────────────────────────────────┐ │  
                      │ │          [X] OPENSSL  Enable SSL support                       │ │  
                      │ │          [ ] FASTMTX  Replace mutexes with spinlocks           │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      │ │                                                                │ │  
                      ├─└────────────────────────────────────────────────────────────────┘─┤  
                      │                       [  OK  ]       Cancel                        │  
                      └────────────────────────────────────────────────────────────────────┘  

Сделаем минимальный конфиг

Код: Выделить всё

cp /usr/local/share/mysql/my-default.cnf /var/db/mysql/my.cnf
Мне надо было что бы база была в UTF8 и клиент тоже работал в этой кодировке - применяя такие настройки сразу избегаем много проблем с "иероглифами" потом. В тоге конфиг получился такой

Код: Выделить всё

[mysqld]
character-set-server = utf8
collation-server = utf8_unicode_ci
skip-character-set-client-handshake
init_connect='SET collation_connection = utf8_unicode_ci' 
init_connect='SET NAMES utf8' 

innodb_buffer_pool_size = 4G
innodb_flush_log_at_trx_commit = 2
innodb_log_buffer_size = 8M
innodb_log_file_size = 128M

[client]
default-character-set = utf8

не забываем прописать к /etc/rc.conf разрешение запуска mysql_enable="YES" после чего запускам

Код: Выделить всё

unix# /usr/local/etc/rc.d/mysql-server start
Starting mysql.

unix# 
Сразу создадим пароль пользователю root а то его там нет, а потом можем забыть )))

Код: Выделить всё

mysqladmin -u root password 'новый_пароль'
проверим

Код: Выделить всё

unix# mysql -uroot -pваш_пароль 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.5.12 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> quit
Bye
unix# 
Как видим у нас всё получилось.

Но СУБД мы ставили зачем-то же - потому создаём нужную нам базу данных

Код: Выделить всё

mysql --user=root --password=P@$$w0rd -e "CREATE DATABASE cdrstats CHARACTER SET UTF8;"
А ещё создадим пользователя и дадим ему права на эту базу данных

Код: Выделить всё

mysql --user=root --password=P@$$w0rd -e "GRANT ALL PRIVILEGES ON cdrstats.* TO 'cdrstats'@'localhost' IDENTIFIED BY 'secret' WITH GRANT OPTION;"
Загрузить дам базы данных можно мпям из самого скуля вот такой командой

Код: Выделить всё

mysql> use powerdns;
Database changed
mysql> \. schema.mysql.sql
Но если вы уже вышли из скуля, то залить данные можно таким способом:

Код: Выделить всё

server# cat /usr/local/share/doc/zoneminder/zm_create.sql | mysql -uroot -pP@$$w0rd zm
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

Оптимизация MySQL

Сообщение RomA »

тут я просто приведу рабочий конфиг mysql - а вы смотрите, читайте описание параметров, если интересно... Ну или можете просто применить этот конфиг

Код: Выделить всё

[client]
port		= 3306
socket		= /tmp/mysql.sock
[mysqld]
port		= 3306
socket		= /tmp/mysql.sock
skip-locking
key_buffer = 1024M
max_allowed_packet = 2M
table_cache = 512
net_buffer_length = 16K
read_buffer_size = 512K
read_rnd_buffer_size = 1M
table_open_cache = 1M
sort_buffer_size = 4M
read_buffer_size = 5M
read_rnd_buffer_size = 16M
myisam_sort_buffer_size = 128M
thread_cache_size = 8
query_cache_size = 128M
thread_concurrency = 8

max_connections=500

[mysqldump]
quick
max_allowed_packet = 128M

[mysql]
no-auto-rehash
safe-updates
  
[isamchk]
key_buffer = 512M
sort_buffer_size = 512M
read_buffer = 4M
write_buffer = 4M
  
[myisamchk]
key_buffer = 1024M
sort_buffer_size = 512M
read_buffer = 4M
write_buffer = 4M
  
[mysqlhotcopy]
interactive-timeout
PS: Сам конфиг лежит в виже текстового файла в директории баз, то есть /var/db/mysql по умолчанию, и называется my.cnf - если такого файла нет - вам надо его создать и перезапустить MySQL сервис
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

Команды MySQL

Сообщение RomA »

select * from users; - посмотреть содержимое таблицы USERS
mysql> select * from users;
+------+-------------------+-----+-----+--------------------------+
| User | Password | Uid | Gid | Dir |
+------+-------------------+-----+-----+--------------------------+
| anna | 123 | -1 | -1 | /usr/home/ftp/anna |
| site | 123 | -1 | -1 | /usr/local/ftp/ |
+------+-------------------+-----+-----+--------------------------+
2 rows in set (0.01 sec)
select * from users where `user_id`='25'; - показать только конкретную запись в таблице



insert `users` VALUES ('cam1','cam1CAM1FiDo','-1','-1','/usr/home/ftp/cam/f/cam1'); - вставить строку в таблицу
mysql> insert `users` VALUES ('cam1','cam1CAM1FiDo','-1','-1','/usr/home/ftp/cam/f/cam1');
Query OK, 1 row affected (0.00 sec)
show tables; - показать список таблиц в текущей БД
mysql> show tables;
+--------------------+
| Tables_in_pureftpd |
+--------------------+
| users |
+--------------------+
1 row in set (0.00 sec)
use pureftpd; - перейти в БД (где pureftpd- это имя БД)
mysql> use pureftpd;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
delete from `users` where `user_id`='31'; - удалить из таблицы users запись 31
mysql> delete from `users` where `user_id`='31';
Query OK, 1 row affected (0.00 sec)
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

Переход на MySQL 5.7

Сообщение RomA »

Не сиделось рочно разработчикам, и вот имеем новую версию :-)

1) Итак, первое что нужно сделать перед переходом - это бекап. Ой как надо, даже если раньше вы этим пренебрегали. Слишком большие изменения.

2) Изменился конфиг по умолчанию - это следует учитывать при обновлении - вам нужно перенести ваш конфиг в новое место

3) Необходимо учитывать что у пароля на скуль теперь появилось время жизни, потому что бы всё было как раньше в конфиг надо написать

Код: Выделить всё

[mysqld]
default_password_lifetime=0
Или нужно вам количество дней.

Если вы запускаете скуль впервые, то он сам сделает пароль на рута и сохранит его в файл /root/.mysql_secret - с этим паролем нужно зайти в скуль и изменить его

Код: Выделить всё

root@localhost [(none)]> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('NEW-P@$$w0rd');
RomA
Сообщения: 358
Зарегистрирован: 05 авг 2008, 14:53
Контактная информация:

MySQL 8.0

Сообщение RomA »

Смена пароля пользователя root

Код: Выделить всё

ALTER USER 'root'@'localhost' IDENTIFIED WITH caching_sha2_password BY 'yourpasswd';
Создание базы данных:

Код: Выделить всё

create database zabbix character set utf8mb4 collate utf8mb4_bin;
Сощдание нового пользователя:

Код: Выделить всё

create user 'zabbix'@'localhost' identified by '<password>';
Даём новому пользователю права на новую базу данных:

Код: Выделить всё

grant all privileges on zabbix.* to 'zabbix'@'localhost';
Добавляем данные в базу данных:

Код: Выделить всё

mysql -uzabbix -p<password> zabbix < schema.sql
Литература:
https://stackoverflow.com/questions/506 ... sql-8-0-11
Ответить