美文网首页数据库
MySQL安装选择部署

MySQL安装选择部署

作者: 吃可爱长大鸭 | 来源:发表于2019-11-27 18:39 被阅读0次

    什么是数据?

    数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的的原始素材。 数据可以是连续的值,比如声音、图像,称为模拟数据。也可以是离散的,如符号、文字,称为数字数据。 在计算机系统中,数据以二进制信息单元0,1的形式表示。

    为什么要学数据库?

    1.用word,excel不好吗?

    1.安全性高
    
    2.性能好
    
    3.可以做集群,高可用
    

    什么是数据库管理系统

    1.管理数据(增删改查)
    
    2.存储数据
    

    数据库管理系统的分类

    1.关系型数据库(RDBMS)

    典型产品:MySQL 、Oracle、MariaDB、MSSQL(SQLserver)
    
    由多张二维表组成,并且每张二维表之间都是相关联的
    

    2.非关系型数据库(NoSQL)

    典型产品:Redis、MongoDB、elasticsearch(search engine)
    

    关系型数据库非关系型数据库功能对比

    img

    MySQL的安装

    1.版本的选择,潜规则

    MySQL5.6:GA 6-12个月 小版本是偶数版本
    
    MySQL5.7:GA 6-12个月 小版本是偶数版本 5.7.17版本以上(MGR MySQL自带的高可用)
    

    0.安装依赖

    [root@db01 ~]# yum install -y cmake gcc gcc-c++ glibc ncurses-devel autoconf libaio-devel
    

    1.解压

    [root@db01 ~]# tar xf mysql-5.6.40.tar.gz
    

    2.生成 ./configure --prefix=/usr/local/xxx cmake 或者 gmake

    #2.创建目录
    [root@db01 ~]# mkdir /application
    [root@db01 ~]# cd mysql-5.6.40/
    [root@db01 ~]# yum -y install cmake
    cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.6.40 \
    -DMYSQL_DATADIR=/application/mysql-5.6.40/data \
    -DMYSQL_UNIX_ADDR=/application/mysql-5.6.40/tmp/mysql.sock \
    -DDEFAULT_CHARSET=utf8 \
    -DDEFAULT_COLLATION=utf8_general_ci \
    -DWITH_EXTRA_CHARSETS=all \
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \
    -DWITH_FEDERATED_STORAGE_ENGINE=1 \
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
    -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 \
    -DWITH_ZLIB=bundled \
    -DWITH_SSL=bundled \
    -DENABLED_LOCAL_INFILE=1 \
    -DWITH_EMBEDDED_SERVER=1 \
    -DENABLE_DOWNLOADS=1 \
    -DWITH_DEBUG=0
    [root@db01 ~/mysql-5.6.40] # rm -f  CMakeCache.txt
    

    3.编译

    make
    

    4.安装

    make install
    

    -------------------------------------------华丽的分割线------------------------------------------------

    [root@db01 application]# ll mysql-5.6.40/
    # mysql所有相关命令
    drwxr-xr-x  2 root root  4096 2019-11-25 12:19 bin
    # 数据存放目录
    drwxr-xr-x  3 root root    18 2019-11-25 12:18 data
    # mysql初始化命令目录
    drwxr-xr-x  2 root root    30 2019-11-25 12:19 scripts
    # 额外的文件
    drwxr-xr-x  2 root root   136 2019-11-25 12:19 support-files​
    

    5.创建系统用户

    [root@db01 scripts]# useradd mysql -s /sbin/nologin -M
    

    6.做软链接

    [root@db01 mysql-5.6.40]# ln -s /application/mysql-5.6.40 /application/mysql
    

    7.拷贝配置文件(覆盖)

    [root@db01 support-files]# cp my-default.cnf /etc/my.cnf
    cp: overwrite ‘/etc/my.cnf’? y
    

    8.拷贝启动脚本

    [root@db01 support-files]# cp mysql.server /etc/init.d/mysqld
    

    9.初始化数据库

    [root@db01 scripts]# ./mysql_install_db --user=mysql --basedir=/application/mysql --datadir=/application/mysql/data
    

    10.创建socket文件存放目录

    [root@db01 scripts]# mkdir /application/mysql-5.6.40/tmp
    ​
    

    11.授权

    [root@db01 scripts]# chown -R mysql.mysql /application/mysql*
    

    12.启动数据库

    [root@db01 scripts]# /etc/init.d/mysqld start
    Starting MySQL. SUCCESS! 
    

    13.添加环境变量

    [root@db01 scripts]# vim /etc/profile.d/mysql.sh
    ​
    export PATH="/application/mysql/bin:$PATH"
    

    14.加载环境变量

    [root@db01 scripts]#  source /etc/profile
    

    15.使用systemd管理MySQL

    [root@db01 scripts]# vim /usr/lib/systemd/system/mysqld.service
    ​
    [Unit]
    Description=MySQL Server
    Documentation=man:mysqld(8)
    Documentation=https://dev.mysql.com/doc/refman/en/using-systemd.html
    After=network.target
    After=syslog.target
    [Install]
    WantedBy=multi-user.target
    [Service]
    User=mysql
    Group=mysql
    ExecStart=/application/mysql/bin/mysqld --defaults-file=/etc/my.cnf
    LimitNOFILE = 5000
    

    16.使用systemd启动MySQL

    [root@db01 scripts]# systemctl start mysqld</pre>
    

    MySQL二进制安装

    0.安装依赖

    [root@db01 ~]# yum install -y cmake gcc gcc-c++ glibc ncurses-devel autoconf libaio-devel
    

    1.解压

    [root@db02 ~]# tar xf mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz
    

    2.创建程序安装目录

    [root@db02 ~]# mkdir /application​
    

    3.将MySQL程序移动到安装目录

    [root@db02 ~]# mv mysql-5.6.40-linux-glibc2.12-x86_64 /application/mysql-5.6.40​
    

    4.做软链接

    [root@db02 ~]# ln -s /application/mysql-5.6.40 /application/mysql
    

    5.创建系统用户

    [root@db02 ~]# useradd mysql -s /sbin/nologin -M​
    

    6.拷贝配置文件

    [root@db02 support-files]# cp my-default.cnf /etc/my.cnf
    cp: overwrite ‘/etc/my.cnf’? y​
    

    7.拷贝启动脚本

    [root@db02 support-files]# cp mysql.server /etc/init.d/mysqld​
    

    8.做初始化

    [root@db02 scripts]# ./mysql_install_db --user=mysql --basedir=/application/mysql --datadir=/application/mysql/data
    

    9.修改MySQL启动脚本和程序

    [root@db02 scripts]# sed -i 's#/usr/local#/application#g' /etc/init.d/mysqld /application/mysql/bin/mysqld_safe​
    

    10.添加一个环境变量

    [root@db02 scripts]# vim /etc/profile.d/mysql.sh
    export PATH="/application/mysql/bin:$PATH"
    

    11.加载环境变量

    [root@db02 scripts]# source /etc/profile
    

    MySQL5.6与MySQL5.7安装区别

    1.介绍不同

    1、cmake的时候加入了boost.org
    2、初始化时 使用mysqld --initialize 替代mysql_install_db,其它参数没有变化:--user= --basedir= --datadir=
    3、--initialize会生成一个临时密码
    4、还可以用另外一个参数--initialize-insecure 不使用密码
    

    2.源码安装编译

    [root@db02 ~/mysql-5.7.31]# yum install -y gcc gcc-c++ automake autoconf
    [root@db02 ~/mysql-5.7.31]# yum install make cmake bison-devel ncurses-devel libaio-devel openssl-devel
     wget http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz
    #登录boost.org下载也可以
    [root@db02 ~/mysql-5.7.31]# tar xf boost_1_59_0.tar.gz -C /usr/local/
    [root@db02 ~/mysql-5.7.31]#
    cmake . \
    -DCMAKE_INSTALL_PREFIX=/application/mysql-5.7.31 \
    -DMYSQL_DATADIR=/application/mysql-5.7.31/data \
    -DMYSQL_UNIX_ADDR=/application/mysql-5.7.31/tmp/mysql.sock \
    -DWITH_INNOBASE_STORAGE_ENGINE=1 \
    -DWITH_PARTITION_STORAGE_ENGINE=1 \
    -DWITH_FEDERATED_STORAGE_ENGINE=1 \
    -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
    -DWITH_MYISAM_STORAGE_ENGINE=1 \
    -DENABLED_LOCAL_INFILE=1 \
    -DDOWNLOAD_BOOST=1 \
    -DWITH_BOOST=/usr/local/boots \
    -DWITH_EXTRA_CHARSETS=all \
    -DDEFAULT_CHARSET=utf8 \
    -DDEFAULT_COLLATION=utf8_general_ci 
    
    

    3.配置配置my.cnf文件

    [root@db02 ~/mysql-5.7.31]# vi /etc/my.cnf
    [mysqld]
    datadir=/application/mysql/data
    socket=/application/mysql/tmp/mysql.sock
    port=3306
    basedir=/application/mysql
    pid_file = /application/mysql/data/mysql.pid
    
    

    4.安装

    [root@db02 ~/mysql-5.7.31]#make & make install
    
    5.做软连接
    [root@db02 ~/mysql-5.7.31]# cd /application/mysql-5.7.31
    [root@db02 /application/mysql-5.7.31]# ln -s /application/mysql-5.7.31 /application/mysql
    
    6.创建系统用户and用户组
    [root@db02 /application/mysql-5.7.31]# groupadd mysql
    [root@db02 /application/mysql-5.7.31]# useradd -r -g mysql mysql
    

    7.创建data、tmp目录和pid,sock文件夹

    [root@db02 /application/mysql-5.7.31]# cd /application/mysql
    [root@db02 /application/mysql]# mkidr data
    [root@db02 /application/mysql]# mkdir tmp
    [root@db02 /application/mysql]# touch tmp/mysql.sock
    [root@db02 /application/mysql]# touch data/mysql.pid
    
    8.更改目录属主属组
    [root@db02 /application/mysql]# chown -R mysql:mysql /application/mysql
    

    9.初始化mysqld 生成初始化密码(注意文件地址)

    [root@db02 /application/mysql]# ./bin/mysqld --initialize --user=mysql --basedir=/application/mysql --datadir=/application/mysql/data
    

    9.1将打印信息最后一句的"root@localhost:" 后边的内容记录下来,这是第一次登陆mysql需要的密码(非常重要);

    10.设置开机启动,复制mysql.server脚本到资源目录,并赋予执行权限

    [root@db02 /application/mysql]# cp ./support-files/mysql.server /etc/rc.d/init.d/mysql.server
    [root@db02 /application/mysql]# chmod +x /etc/rc.d/init.d/mysql.server
    

    11.将 mysqld 服务加入到系统服务并检测是否生效

    [root@db02 /application/mysql]# chkconfig --add mysql.server
    [root@db02 /application/mysql]# chkconfig --list mysql.server
    

    12.启动mysql

    [root@db02 /application/mysql]# service mysql.server start
    

    13.配置环境变量

    [root@db02 /application/mysql]#  vim  /etc/profile
    PATH=$PATH:/application/mysql/bin
    [root@db02 /application/mysql]# source  /etc/profile
    

    14.登陆mysql(密码是之前保存的)

    [root@db02 /application/mysql]#  mysql -uroot -p
    Enter password:
    Welcome to the MySQL monitor.  Commands end with ; or \g.
    Your MySQL connection id is 4
    Server version: 5.7.31
    
    Copyright (c) 2000, 2020, 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>
    
    

    15.修改密码

    mysql> SET PASSWORD = PASSWORD('123456');
    

    16.允许远程访问

    mysql> grant all privileges on *.* to root@"%" identified by "password" with grant option;
    mysql> flush privileges;
    

    17.Navicat连接不上解决

    1.关闭数据库
    service mysql.server stop
    
    2.编辑/etc/my.cnf配置文件跳过授权表无密码登录
    skip-grant-tables
    
    3.重启mysql服务
    service mysql.server restart 
    
    4.无密码登录修改mysql密码
    mysql -u root
    use mysql;
    update mysql.user set authentication_string=password('123456') where user='root' ;
    quit;
    
    5.重启mysql服务
    service mysql restart
    
    image.png
    image.png
    image.png

    相关文章

      网友评论

        本文标题:MySQL安装选择部署

        本文链接:https://www.haomeiwen.com/subject/cchmwctx.html