Instalando o MySQL
Realize o download e descompactação do MySQL com os comandos abaixo
1
2
3
|
wget http: //cdn .mysql.com /archives/mysql-5 .5 /mysql-5 .5.47-linux2.6-x86_64. tar .gz tar -zxvf mysql-5.5.47-linux2.6-x86_64. tar .gz -C /usr/local ln -sf /usr/local/mysql-5 .5.47-linux2.6-x86_64 /usr/local/mysql |
Copie o script de inicialização do MySQL
1
|
cp /usr/local/mysql/support-files/mysql .server /etc/init .d /mysql |
Edite o arquivo /etc/init.d/mysql alterando as linhas conforme exemplo abaixo
1
2
|
basedir= /usr/local/mysql datadir= /databases/mysql/bases |
Crie o arquivo /databases/mysql/my.cnf com o conteúdo abaixo
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
|
## Helvio Junior – my.cnf template ### my.cnf [client] port = 3306 socket = /databases/mysql/mysql .sock [mysqld_safe] open_files_limit = 1024000 basedir = /usr/local/mysql timezone = America /Sao_Paulo socket = /databases/mysql/mysql .sock nice = 0 # Diretório de logs e consultas lentas log-error = /databases/mysql/logs/error .log pid- file = /databases/mysql/bases/mysql .pid [mysqld] open_files_limit = 1024000 general_log = 0 log_warnings = 1 general_log_file = /databases/mysql/logs/mysqld .log log-error = /databases/mysql/logs/error .log log-slow-admin-statements = 0 #Consultas lentas long_query_time = 5 log-slow-queries = /databases/mysql/logs/mysql-slow .log log-queries-not-using-indexes = 0 user = mysql pid- file = /databases/mysql/bases/mysql .pid socket = /databases/mysql/mysql .socket port = 3306 basedir = /usr/local/mysql datadir = /databases/mysql/bases/ tmpdir = /databases/mysql/tmpdir lc-messages- dir = /usr/local/mysql/share/ # Performance Analsys performance_schema = off # Desativa o LOAD FILE local -infile = 0 old_passwords=0 # 0x = MASTER # 1x = Slave Level 1 # 2x = Slave em baixo de Slave server- id =01 # Master Setup (Caso tenha replicação) #binlog_format = ROW #log-bin = /databases/mysql/binlog/mysql-bin #log_slave_updates = 1 #log_bin_trust_function_creators = 1 #expire_logs_days = 1 # Configuracoes Diversas #Compatibilidade sql_mode = '' skip-name-resolve max_connections = 10000 query_cache_size = 80M query_cache_min_res_unit = 2K query_cache_type = 1 sort_buffer_size = 2M read_buffer_size = 128k join_buffer_size = 5M myisam_sort_buffer_size = 128M bulk_insert_buffer_size = 128M max_allowed_packet = 1G thread_cache_size = 100 table_cache = 512 # Tabelas temporárias # Configura o tamanho maximo para tabela do tipo MEMORY max_heap_table_size = 1G # Configura o tamanho maximo antes de converter para MyISAM tmp_table_size = 1G # Federated Store Engine federated # MyISAM Store Engine # depreciado... key_buffer = 256M myisam_repair_threads = 1 myisam_recover = FORCE # InnoDB (Default) # Depreciado na 5.6 - Armazena dicionario de dados na ram innodb_additional_mem_pool_size = 16M # BUFFER POOL # # Alterar este valor para +- 80 da memória do servidor innodb_buffer_pool_size = 1G # Segregacao do buffer_pool - Performance para algoritmo LRU (qtd cpu) innodb_buffer_pool_instance = 6 # Redo Log innodb_log_buffer_size = 1G innodb_log_group_home_dir = /databases/mysql/innolog innodb_log_files_in_group = 7 innodb_log_file_size = 512M # Manipulacao de arquivos innodb_open_files = 1024000 innodb_file_per_table = 1 innodb_data_file_path = ibdata1:1G:autoextend innodb_data_home_dir= /databases/mysql/bases/ # O_DIRECT para fazer by-pass (O EBS controla) innodb_flush_method = O_DIRECT innodb_file_format = BARRACUDA # QTD de IOPS que esta disponível para o datadir innodb_io_capacity = 1000 # Controle Transacional transaction-isolation=READ-COMMITTED innodb_support_xa = 0 # Qtd de segundos antes de um Lock wait timeout exceeded innodb_lock_wait_timeout = 120 |
Altere o parâmetro innodb_buffer_pool_size deste arquivo recém criado para um valor de +- 80% da memória do ser servidor.
Crie um link simbólico do arquivo de configuração para o diretório /etc
1
|
ln -s /databases/mysql/my .cnf /etc/my .cnf |
Crie as bases de dados iniciais do MySQL
1
2
|
cd /usr/local/mysql scripts /mysql_install_db --datadir= /databases/mysql/bases/ --basedir= /usr/local/mysql |
Configure para que o MySQL inicie automaticamente na inicialização do sistema operacional e inicie o serviço
1
2
|
update-rc.d -f mysql defaults service mysql start |
Por questões de segurança, altere a senha padrão do usuário root do banco de dados
1
|
/usr/local/mysql/bin/mysqladmin -u root password 'new-password' |
Pronto, o seu servidor de MySQL está instalado e pronto para uso.
Caso deseje outras otimizações não citadas neste post segue uma sugestão se referência para consulta: http://blog.neweb.co/pt/how-to-optimize-a-mysql-server/
http://www.helviojunior.com.br/it/mysql/instalando-e-otimizando-mysql-para-alto-trafego-de-dados/