linux mysql 开发环境_Linux搭建Mysql数据库开发环境

Linux搭建Mysql数据库开发环境

1.MySQL 概述

【1】MySQL:Oracle旗下的开源关系型数据库,这里选择

mazhilin-2406251版本。

mazhilin-2406251

mazhilin-2406251

【2】 MySQL Community Edition:Mysql开源社区版本,目前最新版本:5.7.21

mazhilin-2406251

MySQL Community Edition is the freely downloadable version of the world's most popular open source database. It is available under the GPL license and is supported by a huge and active community of open source developers.

【3】选择

mazhilin-2406251下载MySQL Community Edition安装包:

mazhilin-2406251

【4】目前有

mazhilin-2406251

mazhilin-24062512个版本,这里我选择GA-5.7.21,开发版本最新DEV-8.0.4

mazhilin-2406251

mazhilin-2406251

2. MySQL 安装

【1】此教程已经默认Linux环境已经安装SSH,利用Xftp5工具把安装包是上传到Linux服务器:/usr/local/mysql :

mazhilin-2406251

【2】使用Xhell5工具登录到Linux服务器,并进入到:cd/usr/local/mysql:

mazhilin-2406251

【3】使用tar -xvf 命令解压安装包,Xhell5 终端输入:tar  -xvf mysql-5.7.21-1.el7.x86_64.rpm-bundle.tar

mazhilin-2406251

【4】使用 rpm -qa|grep * 命令检测linux服务器是否安装有其他mysql版本,输入:rpm -qa|grep mariadb  --mariadb是为了支持Linux 开发的一个分支版本

mazhilin-2406251

【5】使用 rpm -e --nodeps 命令卸载上述mariadb,可重复输入命令校验是否卸载: rpm -qa|grep mariadb

[root@marklin mysql]# rpm -e --nodeps mariadb-server-5.5.56-2.el7.x86_64

[root@marklin mysql]# rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64

[root@marklin mysql]# rpm -e --nodeps mariadb-5.5.56-2.el7.x86_64

mazhilin-2406251

【6】使用 rpm -ivh命令依次按照如下顺序安装:

rpm -ivh mysql-community-common-5.7.21-1.el7.x86_64.rpm

mazhilin-2406251

rpm -ivh mysql-community-libs-5.7.21-1.el7.x86_64.rpm

mazhilin-2406251

rpm -ivh mysql-community-devel-5.7.21-1.el7.x86_64.rpm

mazhilin-2406251

rpm -ivh mysql-community-libs-compat-5.7.21-1.el7.x86_64.rpm

mazhilin-2406251

rpm -ivh mysql-community-embedded-5.7.21-1.el7.x86_64.rpm

mazhilin-2406251

mysql-community-embedded-devel-5.7.21-1.el7.x86_64.rpm

mazhilin-2406251

rpm -ivh mysql-community-embedded-compat-5.7.21-1.el7.x86_64.rpm

mazhilin-2406251

rpm -ivh mysql-community-client-5.7.21-1.el7.x86_64.rpm

mazhilin-2406251

rpm -ivh mysql-community-server-5.7.21-1.el7.x86_64.rpm

mazhilin-2406251

mysql-community-test-5.7.21-1.el7.x86_64.rpm  --需要perl支持,输入: yum install perl-JSON.noarch

mazhilin-2406251

mazhilin-2406251

mazhilin-2406251

3. MySQL 配置

【1】启动mysql服务,输入: systemctl start mysqld.service

mazhilin-2406251

或者输入: service mysqld start

mazhilin-2406251

【2】查看mysql服务状态,输入: service mysqld status

mazhilin-2406251

【3】获取出厂密码,输入: cat /var/log/mysqld.log | grep password -- Jt0!P=n!B9;8

mazhilin-2406251

【4】测试登录myql:mysql -u root -p,输入密码:Jt0!P=n!B9;8

mazhilin-2406251

【5】修改默认密码并修改默认密码安全策略:

数字+英文字母,包含大小写:123456Abc

mazhilin-2406251

数字+小写字母:123456abc

mazhilin-2406251

调整密码安全策略:

set global validate_password_policy=0;

mazhilin-2406251

set global validate_password_mixed_case_count=0;

mazhilin-2406251

set global validate_password_number_count=3;

mazhilin-2406251

set global validate_password_special_char_count=0;

mazhilin-2406251

set global validate_password_length=3;

mazhilin-2406251

set password for 'root'@'localhost' = password('123456Abc'); --修改默认密码:123456Abc

mazhilin-2406251

showvariableslike'validate_password%'; --查看修改的密码验证参数

mazhilin-2406251

【6】授权数据库用户和密码:grant all privileges on *.* to 'root'@'%' identified by '123456Abc' with grant option;

mazhilin-2406251

【7】刷新策略生效:flush privileges;

mazhilin-2406251

【8】使用修改的密码测试登录:mysql -u root -p,输入密码:123456Abc

mazhilin-2406251

【9】开放3306端口:

开放端口需要配置防火墙启动:systemctl start firewalld.service

mazhilin-2406251

查看防火墙状态:systemctl status firewalld.service

mazhilin-2406251

开放端口:firewall-cmd --zone=public --add-port=3306/tcp --permanent

mazhilin-2406251

重新载入配置: firewall-cmd --reload

mazhilin-2406251

【10】使用客户端登录验证:

mazhilin-2406251

mazhilin-2406251

4.MySQL 性能优化之参数配置

【1】mysql日志输出记录:

mysql可记录日志的方式有 general query log和slow query log2种,需要注意的是:

(1).为了性能考虑,一般通用查询日志general log不会开启。slow log可以定位一些有性能问题的sql,而general log会记录所有的sql。

(2). mysql5.0版本,如果要开启slow log、general log,需要重启,从MySQL5.1.6版开始,general query log和slow query log开始支持写到文件或者数据库表两种方式.

(3).日志的开启,输出方式的修改,都可以在Global级别动态修改。

慢日志查询输出方式:

系统变量名称

设置参数值

参数描述描述

备注

slow_query_log

[on|off]

是否启用慢查询日志

默认为off

slow_query_log_file

[filename]

指定慢查询日志文件的路径和名字,可使用绝对路径指定

默认值是'主机名_slow.log',位于datadir目录

long_query_time

2

SQL语句运行时间阈值

执行时间大于参数值的语句才会被记录下来

min_examined_row_limit

100

SQL语句检测的记录数少于设定值

不会被记录到慢查询日志,即使这个语句执行时间超过了long_query_time的阈值

log_queries_not_using_indexes

1

将没有使用索引的语句记录到慢查询日志

log_throttle_queries_not_using_indexes

10

设定每分钟记录到日志的未使用索引的语句数目

超过这个数目后只记录语句数量和花费的总时间

log-slow-admin-statements

1

记录执行缓慢的管理SQL

alter table,analyze table, check table, create index, drop index, optimize table, repair table

log_timestamps

system

5.7版本新增时间戳所属时区参数

默认记录UTC时区的时间戳到慢查询日志,应修改为记录系统时区

log_output

[none|file|table]

指定慢查询日志的输出方式

从5.5版本开始可以记录到日志文件(FILE,慢查询日志)和数据库表(TABLE,mysql.slow_log)中

操作实例:

【1】显示slow的情况:show variables like '%slow%';

mazhilin-2406251

【2】修改数据库配置参数:

mysql> set @@global.slow_query_log = on;

Query OK, 0 rows affected (0.00 sec)

mysql> set @@global.log_slow_admin_statements=1;

Query OK, 0 rows affected (0.00 sec)

mysql> set global min_examined_row_limit=100;

Query OK, 0 rows affected (0.00 sec)

mysql> set global log_queries_not_using_indexes=1;

Query OK, 0 rows affected (0.00 sec)

mysql> set global log_throttle_queries_not_using_indexes=10;

Query OK, 0 rows affected (0.00 sec)

mazhilin-2406251

【3】查看修改slow的情况:show variables like '%slow%';

mazhilin-2406251

mysql> show variables like '%slow%';

+---------------------------+---------------------------------+

| Variable_name             | Value                           |

+---------------------------+---------------------------------+

| log_slow_admin_statements | ON                              |

| log_slow_slave_statements | OFF                             |

| slow_launch_time          | 2                               |

| slow_query_log            | ON                              |

| slow_query_log_file       | /var/lib/mysql/marklin-slow.log |

+---------------------------+---------------------------------+

5 rows in set (0.01 sec)

【5】配置记录没有使用索引的sql:

mysql> set @@global.log_queries_not_using_indexes=on;

Query OK, 0 rows affected (0.00 sec)

mazhilin-2406251

mysql> show variables like '%index%';

+----------------------------------------+----------------------------------------+

| Variable_name                          | Value                                  |

+----------------------------------------+----------------------------------------+

| eq_range_index_dive_limit              | 200                                    |

| innodb_adaptive_hash_index             | ON                                     |

| innodb_adaptive_hash_index_parts       | 8                                      |

| innodb_cmp_per_index_enabled           | OFF                                    |

| log_bin_index                          |                                        |

| log_queries_not_using_indexes          | ON                                     |

| log_throttle_queries_not_using_indexes | 10                                     |

| performance_schema_max_index_stat      | -1                                     |

| relay_log_index                        | /var/lib/mysql/marklin-relay-bin.index |

+----------------------------------------+----------------------------------------+

9 rows in set (0.00 sec)

mazhilin-2406251

通用查询日志输出方式 :

系统变量名称

设置参数值

参数描述

备注

log_output

[none|file|table]

通用查询日志输出支持格式

系统默认为file,一般推荐使用file和table格式混合输出通用日志,none为不输出日志文件

general_log

[on|off]

是否启用通用查询日志

系统默认为off

general_log_file

[filename]

通用查询日志位置及名字

指定日志文件路径以及日志名称

操作实例:

【1】查询系统变量:show variables like '%general%';

mysql> show variables like '%general%';

+------------------+----------------------------+

| Variable_name    | Value                      |

+------------------+----------------------------+

| general_log      | OFF                        |

| general_log_file | /var/lib/mysql/marklin.log |

+------------------+----------------------------+

2 rows in set (0.00 sec)

mazhilin-2406251 【2】开启general_log:set global general_log=on;

mysql> set global general_log=on;

Query OK, 0 rows affected (0.01 sec)

mysql> show variables like '%general%';

+------------------+----------------------------+

| Variable_name    | Value                      |

+------------------+----------------------------+

| general_log      | ON                         |

| general_log_file | /var/lib/mysql/marklin.log |

+------------------+----------------------------+

2 rows in set (0.34 sec)

mazhilin-2406251

mazhilin-2406251

【3】设置日志输出格式:set global log_output='file,table';

mysql> set global log_output='file,table';

Query OK, 0 rows affected (0.00 sec)

mysql> show variables like 'log_output';

+---------------+------------+

| Variable_name | Value      |

+---------------+------------+

| log_output    | FILE,TABLE |

+---------------+------------+

1 row in set (0.01 sec)

mazhilin-2406251

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值