ITPub博客

首页 > 数据库 > 数据库开发技术 > Python数据库篇之Mysql5.7.30基本安装教程

Python数据库篇之Mysql5.7.30基本安装教程

原创 数据库开发技术 作者:小安 时间:2020-09-21 23:12:21 0 删除 编辑



了解Python自动化运维
↑点击蓝字关注我们 ↑



本次主要讲下Mysql 5.7.30的安装部署,主要是用于记录,但是这篇文章的缺点是没有把操作系统更核心的配置和阿里云那一套DB最优配置给搬出来。小安Sir找个时间去专研下各个云数据库,把最优配置给记录下来,再分享给大家。


以前学习Oracle的时候,老师们都说学好Oracle,学Mysql就会很简单。


但随着接触Mysql越来越多,发现有Oracle底子完全是不够用的,还是要有空杯心态。


大家都说学会Oracle,学Mysql就会很容易,但这只是表面功能的相似,因为Oracle是个黑箱子,再怎么会玩,还是一个 王者 N* 的使用者。


Mysql是一个非常优秀的开源数据库,通过学习Mysql功能,可以看到Mysql的源码,就会越不由自主地去想Oracle的功能实现会不会也是如此。这个肯定是废话了,哈哈,一般是Mysql借鉴Oracle的。


小安Sir感觉达到一定的境界后,才能真正领悟“学会Oracle,学Mysql也会简单很多”这个老生常谈,但这不仅仅只是单向关系,而是双向关系。


想要成为一名数据库的引领者,掌握数据库的精髓,参透数据库的核心思想,不深入了解一个开源数据库的代码,怎么可以呢?


小安Sir希望自己以后能够将数据库融会贯通,不再受自身技术限制。接下来,多多实战,多多分享。



Mysql系列







5.7.30基础安装教程

本文大纲

Attention

    1. 服务器基础配置

    2. 数据库相关配置



服务器基础配置

01


1.1 host配置

1[root@VAM-DB01 ~]# cat /etc/hosts
2127.0.0.1   localhost localhost.localdomain localhost4 localhost4.localdomain4
3::1         localhost localhost.localdomain localhost6 localhost6.localdomain6
4
5192.168.117.130 VAM-DB01
6192.168.117.140 VAM-DB02


1.2 安装RPM包

1yum install libaio* -y
2yum install libaio-devel* -y
3yum install libstdc++* -y
4yum install gcc-c* -y 
5yum install cmake* -y 
6yum install ncurses-devel* -y 
7yum install bison* -y 
8yum install perl gcc -y


1.3 Redhat 7卸载mariadb或多余的Mysql安装包

RHEL 7默认有安装mariadb,先卸载再安装。

1[root@VAM-DB01 ~]# rpm -qa|grep mysql
2[root@VAM-DB01 ~]# rpm -qa|grep mariadb
3mariadb-libs-5.5.60-1.el7_5.x86_64
4[root@VAM-DB01 ~]# rpm -e mariadb-libs-5.5.60-1.el7_5.x86_64 --nodeps
5[root@VAM-DB01 ~]# rpm -qa|grep mariadb


如果RHEL 6有RPM方式安装Mysql,确认后没有问题就可以卸载。

1[root@VAM-DB01 ~]# rpm -qa|grep mysql
2mysql-community-embedded-5.7.22-1.el6.x86_64
3mysql-community-client-5.7.22-1.el6.x86_64
4mysql-community-libs-5.7.22-1.el6.x86_64
5mysql-community-embedded-devel-5.7.22-1.el6.x86_64
6mysql-community-common-5.7.22-1.el6.x86_64
7mysql-community-devel-5.7.22-1.el6.x86_64
8mysql-community-server-5.7.22-1.el6.x86_64
9mysql-community-libs-compat-5.7.22-1.el6.x86_64


卸载方式。

1[root@VAM-DB01 ~]# rpm -e mysql-community-embedded-5.7.22-1.el6.x86_64
2[root@VAM-DB01 ~]# rpm -e mysql-community-client-5.7.22-1.el6.x86_64
3[root@VAM-DB01 ~]# rpm -e mysql-community-libs-5.7.22-1.el6.x86_64
4[root@VAM-DB01 ~]# rpm -e mysql-community-embedded-devel-5.7.22-1.el6.x86_64
5[root@VAM-DB01 ~]# rpm -e mysql-community-common-5.7.22-1.el6.x86_64
6[root@VAM-DB01 ~]# rpm -e mysql-community-devel-5.7.22-1.el6.x86_64
7[root@VAM-DB01 ~]# rpm -e mysql-community-server-5.7.22-1.el6.x86_64
8[root@VAM-DB01 ~]# rpm -e mysql-community-libs-compat-5.7.22-1.el6.x86_64


1.4 关闭SELINUX

 1[root@VAM-DB01 ~]# vi /etc/selinux/config 
2
3#
 This file controls the state of SELinux on the system.
4# SELINUX= can take one of these three values:
5#     enforcing - SELinux security policy is enforced.
6#     permissive - SELinux prints warnings instead of enforcing.
7#     disabled - No SELinux policy is loaded.
8SELINUX=disabled
9# SELINUXTYPE= can take one of these two values:
10#     targeted - Targeted processes are protected,
11#     mls - Multi Level Security protection.
12SELINUXTYPE=targeted 


1[root@VAM-DB01 ~]# vi /etc/selinux/config 
2[root@VAM-DB01 ~]# setenforce 0


1.5 关闭防火墙

RHEL 6 关闭防火墙

1[root@VAM-DB01 ~]# service iptables stop
2[root@VAM-DB01 ~]# service iptables status
3iptables: Firewall is not running.
4[root@VAM-DB01 ~]# chkconfig iptables off
5[root@VAM-DB01 ~]# chkconfig --list|grep iptables
6iptables        0:off   1:off   2:off   3:off   4:off   5:off   6:off


RHEL 7 关闭防火墙

1[root@VAM-DB01 ~]# systemctl stop iptables.service


1.6 文件进程数限制

1[root@VAM-DB01 ~]# cat >>/etc/security/limits.conf <<EOF
2* soft nproc 16384
3* hard nproc 65535
4* soft nofile 65536
5* hard nofile 65536
6EOF


数据库相关配置

02


2.1 创建用户和用户组

1[root@VAM-DB01 ~]# groupadd -g 105 mysql
2[root@VAM-DB01 ~]# useradd -u 105 -g mysql mysql
3[root@VAM-DB01 ~]# id mysql
4uid=105(mysql) gid=105(mysql) groups=105(mysql)


2.2 修改mysql密码

1[root@VAM-DB01 ~]# passwd mysql    


2.3 创建目录

 1[root@VAM-DB01 ~]# mkdir -p /mysql/software/
2[root@VAM-DB01 ~]# mkdir -p /mysql/data
3[root@VAM-DB01 ~]# mkdir -p /mysql/lock
4[root@VAM-DB01 ~]# mkdir -p /mysql/log/binlog
5[root@VAM-DB01 ~]# mkdir -p /mysql/log/relaylog
6[root@VAM-DB01 ~]# mkdir -p /mysql/tmp
7[root@VAM-DB01 ~]# mkdir -p /mysql/dump
8[root@VAM-DB01 ~]# mkdir -p /mysql/backup
9[root@VAM-DB01 ~]# mkdir -p /mysql/log/error
10[root@VAM-DB01 ~]# mkdir -p /mysql/log/slow
11[root@VAM-DB01 ~]# chown -R mysql:mysql /mysql/


2.4 配置Mysql环境变量

 1[root@VAM-DB01 ~]# su - mysql
2[mysql@VAM-DB01 ~]$ vi .bash_profile 
3# .bash_profile
4
5#
 Get the aliases and functions
6if [ -f ~/.bashrc ]; then
7        . ~/.bashrc
8fi
9
10#
 User specific environment and startup programs
11
12PATH=$PATH:$HOME/.local/bin:$HOME/bin
13
14export PATH
15export MYSQL_HOME=/usr/local/mysql
16export PATH=$HOME/bin:$MYSQL_HOME/bin:$PATH
17export LD_LIBRARY_PATH=$MYSQL_HOME/lib:$LD_LIBRARY_PATH


2.5 解压Mysql 5.7安装包

1[root@VAM-DB01 ~]# cd /stages/
2[root@VAM-DB01 stages]# chown -R mysql:mysql mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz 
3
4#
### 使用mysql用户新建5.7.30目录
5[mysql@VAM-DB01 ~]$ mkdir /mysql/software/mysql-5.7.30
6
7#
### 解压
8[mysql@VAM-DB01 stages]$ tar -zxvf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz -C /mysql/software/mysql-5.7.30 --strip-components=1


2.6 Link Mysql 软件

 1#### 进入/usr/local ,link mysql软件
2[root@VAM-DB01 ~]# cd /usr/local/
3[root@VAM-DB01 local]# ln -s /mysql/software/mysql-5.7.30/ mysql
4[root@VAM-DB01 local]# cd mysql/
5[root@VAM-DB01 mysql]# ls -l
6total 288
7drwxr-xr-x.  2 mysql mysql   4096 Jul 22 11:20 bin
8drwxr-xr-x.  2 mysql mysql     55 Jul 22 11:20 docs
9drwxr-xr-x.  3 mysql mysql   4096 Jul 22 11:20 include
10drwxr-xr-x.  5 mysql mysql    230 Jul 22 11:20 lib
11-rw-r--r--.  1 mysql mysql 275235 Mar 24 01:35 LICENSE
12drwxr-xr-x.  4 mysql mysql     30 Jul 22 11:20 man
13-rw-r--r--.  1 mysql mysql    587 Mar 24 01:35 README
14drwxr-xr-x. 28 mysql mysql   4096 Jul 22 11:20 share
15drwxr-xr-x.  2 mysql mysql     90 Jul 22 11:20 support-files


2.7 使用服务启动mysql

1[root@VAM-DB01 mysql]# cp support-files/mysql.server /etc/init.d/mysqld
2
3#
### 修改 /etc/init.d/mysqld,改不改都可以。
4[root@VAM-DB01 mysql]# vi /etc/init.d/mysqld 
5basedir=/usr/local/mysql
6datadir=/mysql/data
7lockdir='/mysql/lock'
8mysqld_pid_file_path=/mysql/data/mysql.pid


2.8 配置my.cnf文件

参数文件先使用一些简单参数,后续再把云数据库的参数搬下来分析,不过云数据库有很多的自研发参数,我们可以选择性地把DB日常用到的一些配置给拿下来学习,在自动化部署上,尽可能更加规范化。

 1[root@VAM-DB01 ~]# cp /etc/my.cnf  /etc/my.cnf.bak_200722 
2
3[root@VAM-DB01 ~]# cat /etc/my.cnf 
4[mysql]
5prompt=(\\u@\\h) [\\d]>\\
6
7[mysqld]
8port = 3306
9user = mysql
10datadir= /mysql/data
11socket=/mysql/data/mysql.sock
12pid-file=mysql.pid
13
14#
## Log ###
15log_error= mysql-error.log
16slow_query_log = 1
17slow_query_log_file = mysql-slow.log
18long_query_time = 10
19
20#
## Other settings
21log_timestamps=SYSTEM


2.9 初始化Mysql数据库

1[root@VAM-DB01 mysql]# bin/mysqld --initialize --user=mysql
2
3#
### 对数据库软件授予root用户,以防更改
4[root@VAM-DB01 mysql]# chown -R root:mysql /usr/local/mysql/


2.10 修改Mysql服务 root 密码

如果不先修改root@'localhost'的密码,那么将无法做其他操作。

1[mysql@VAM-DB01 ~]$ tail -f /mysql/log/error/mysql-error.log 
22020-07-22T03:24:39.770541Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
32020-07-22T03:24:40.222438Z 0 [Warning] InnoDB: New log files created, LSN=45790
42020-07-22T03:24:40.333575Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
52020-07-22T03:24:40.416602Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: e0d5dca8-cbca-11ea-916e-000c29bf474d.
62020-07-22T03:24:40.419570Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
72020-07-22T03:24:41.236391Z 0 [Warning] CA certificate ca.pem is self signed.
82020-07-22T03:24:41.416380Z 1 [Note] A temporary password is generated for root@localhost: 5S+5sevsw:Kd


启动Mysql服务,并开始修改密码

 1[root@VAM-DB01 ~]# service mysqld start
2
3[mysql@VAM-DB01 data]$ mysql -uroot -p
4Enter password: 
5(root@localhost) [(none)]>select user,host from mysql.user;
6ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
7(root@localhost) [(none)]>alter user root@'localhost' identified by "123456";
8Query OK, 0 rows affected (0.00 sec)
9
10(root@localhost) [(none)]>show databases;
11+--------------------+
12| Database           |
13+--------------------+
14| information_schema |
15| mysql              |
16| performance_schema |
17| sys                |
18+--------------------+
194 rows in set (0.01 sec)
20
21(root@localhost) [(none)]>select user,host from mysql.user;
22+---------------+-----------+
23| user          | host      |
24+---------------+-----------+
25| mysql.session | localhost |
26| mysql.sys     | localhost |
27| root          | localhost |
28+---------------+-----------+
293 rows in set (0.00 sec)


2.11 启动和停止mysql服务

1[root@VAM-DB01 ~]# chkconfig mysqld on
2[root@VAM-DB01 ~]# service mysqld restart
3[root@VAM-DB01 ~]# service mysqld start
4[root@VAM-DB01 ~]# service mysqld stop



Mysql 5.7.30安装完毕!



顺便一提,小安Sir周末跟好朋友去参加了一个英语角。


在这次英语角中,小安Sir找回了当初在大学学了三年口语的感觉,我觉得有必要重新把英语口语拾起来。小安Sir觉得程序猿除了敲代码、学习IT技术外,其实还有很多东西可以去尝试,去坚持,做一个不一样的程序猿,哈哈!


希望老铁们也可以找到除了敲代码以外的兴趣爱好,以后有机会的话,我也会分享下我在英语口语学习方面的心得,干巴爹!



Python

自动化运维

长按识别左侧二维码,

关注Python自动化运维喔~

原文作者:Python自动化运维;如有侵权,请联系管理员删除。

请登录后发表评论 登录
全部评论

注册时间:2018-10-07

  • 博文量
    47
  • 访问量
    17925