• 编译安装MySQL服务(LAMP2)


    目录

    1.初始化设置,将安装mysql 所需软件包传到/opt目录下

    (1)关闭防火墙

    (2)上传软件包到/opt目录

    2.安装环境依赖包

    3.配置软件模块

    4.编译及安装

    5.创建mysql用户

    6.修改mysql 配置文件

    7.更改mysql安装目录和配置文件的属主属组

    8.设置路径环境变量

    9.初始化数据库

    10.添加mysqld系统服务

    11.修改mysql 的登录密码

    12.授权远程登录


    1.初始化设置,将安装mysql 所需软件包传到/opt目录下

    (1)关闭防火墙

    1. systemctl stop firewalld.service          #关闭防火墙
    2. setenforce 0                               #关闭selinux防火墙

    (2)上传软件包到/opt目录

    2.安装环境依赖包

    yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake openssl-devel   #安装软件

    • gcc                                     #C语言的编译器
    • gcc-c++                             #C++的编译器
    • ncurses                             #字符终端下图形互动功能的动态库
    • ncurses-devel                   #ncurses开发包
    • bison                                 #语法分析器
    • cmake                                #mysql需要用cmake编译安装

    3.配置软件模块

    1. cd /opt #切换到/opt目录
    2. tar zxvf mysql-boost-5.7.44.tar.gz #解压压缩包
    1. cd mysql-5.7.44/ #切换目录
    2. cmake \
    3. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
    4. -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock \
    5. -DSYSCONFDIR=/etc \
    6. -DSYSTEMD_PID_DIR=/usr/local/mysql \
    7. -DDEFAULT_CHARSET=utf8 \
    8. -DDEFAULT_COLLATION=utf8_general_ci \
    9. -DWITH_EXTRA_CHARSETS=all \
    10. -DWITH_INNOBASE_STORAGE_ENGINE=1 \
    11. -DWITH_ARCHIVE_STORAGE_ENGINE=1 \
    12. -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
    13. -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \
    14. -DMYSQL_DATADIR=/usr/local/mysql/data \
    15. -DWITH_BOOST=/usr/local/boost \
    16. -DWITH_SYSTEMD=1
    • -DCMAKE_INSTALL_PREFIX=/usr/local/mysql                #指定mysql的安装路径
    • -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock                                                                                         #指定mysql进程监听套接字文件(数据库连接文件)的存储路径
    • -DSYSCONFDIR=/etc \                                                    #指定配置文件的存储路径
    • -DSYSTEMD_PID_DIR=/usr/local/mysql \                       #指定进程文件的存储路径
    • -DDEFAULT_CHARSET=utf8  \                                      #指定默认使用的字符集编码,如 utf8
    • -DDEFAULT_COLLATION=utf8_general_ci \                 #指定默认使用的字符集校对规则
    • -DWITH_EXTRA_CHARSETS=all \                                #指定支持其他字符集编码
    • -DWITH_INNOBASE_STORAGE_ENGINE=1 \             #安装INNOBASE存储引擎
    • -DWITH_ARCHIVE_STORAGE_ENGINE=1 \               #安装ARCHIVE存储引擎 
    • -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \          #安装BLACKHOLE存储引擎 
    • -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 \       #安装FEDERATED存储引擎 
    • -DMYSQL_DATADIR=/usr/local/mysql/data \                  #指定数据库文件的存储路径
    • -DWITH_BOOST=/usr/local/boost \                                                                                                                     #指定boost的路径,若使用mysql-boost集成包安装则-DWITH_BOOST=boost
    • -DWITH_SYSTEMD=1                                                    #生成便于systemctl管理的文件
       

    注意:如果在CMAKE的过程中有报错,当报错解决后,需要把源码目录中的CMakeCache.txt文件删除,然后再重新CMAKE,否则错误依旧

    4.编译及安装

    1. make                       #make -j 3  表示开3核同时进行编译
    2. make install

    5.创建mysql用户

    useradd -M -s /sbin/nologin mysql         #创建mysql用户

    6.修改mysql 配置文件

    vim /etc/my.cnf                          #修改文件

    删除里面的所有配置重新配置

    [client]                                                                   #客户端设置

    port = 3306

    socket = /usr/local/mysql/mysql.sock            

    [mysql]                                                                  #服务端设置

    port = 3306

    socket = /usr/local/mysql/mysql.sock

    auto-rehash                                                          #开启自动补全功能

    [mysqld]                                                                #服务全局设置

    user = mysql                                                         #设置管理用户

    basedir=/usr/local/mysql                                      #指定数据库的安装目录

    datadir=/usr/local/mysql/data                              #指定数据库文件的存储路径

    port = 3306                                                             #指定端口

    character-set-server=utf8                                     #设置服务器字符集编码格式为utf8

    pid-file = /usr/local/mysql/mysqld.pid                 #指定pid 进程文件路径

    socket=/usr/local/mysql/mysql.sock                  #指定数据库连接文件

    bind-address = 0.0.0.0                                          #设置监听地址,0.0.0.0代表允许所有,如允许多个IP需空格隔开

    skip-name-resolve                                                #禁止域名解析,包括主机名,所以授权的时候要使用 IP 地址

    max_connections=4096                                       #设置mysql的最大连接数

    default-storage-engine=INNODB                         #指定默认存储引擎

    max_allowed_packet=32M                                   #设置在网络传输中一次消息传输量的最大值。系统默认值为 1MB,最大值是 1GB,必须设置 1024 的倍数。

    server-id = 1                                                           #指定服务ID号

    sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES

    sql_mode常用值如下

    • NO_ENGINE_SUBSTITUTION                                                                                                  如果需要的存储引擎被禁用或未编译,那么抛出错误。不设置此值时,用默认的存储引擎替代,并抛出一个异常
    • STRICT_TRANS_TABLES                                                                                                      在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做限制
    • NO_AUTO_CREATE_USER                                                                                                    禁止GRANT创建密码为空的用户
    • NO_AUTO_VALUE_ON_ZERO                                                                                          mysql中的自增长列可以从0开始。默认情况下自增长列是从1开始的,如果你插入值为0的数据会报错
    • NO_ZERO_IN_DATE                                                                                                                不允许日期和月份为零
    • NO_ZERO_DATE                                                                                                                        mysql数据库不允许插入零日期,插入零日期会抛出错误而不是警告
    • ERROR_FOR_DIVISION_BY_ZERO                                                                                      在INSERT或UPDATE过程中,如果数据被零除,则产生错误而非警告。默认情况下数据被零除时MySQL返回NULL
    • PIPES_AS_CONCAT                                                                                                                将"||"视为字符串的连接操作符而非或运算符,这和Oracle数据库是一样的,也和字符串的拼接函数Concat相类似
    • ANSI_QUOTES                                                                                                                        启用ANSI_QUOTES后,不能用双引号来引用字符串,因为它被解释为识别符

    7.更改mysql安装目录和配置文件的属主属组

    1. chown -R mysql:mysql /usr/local/mysql/
    2. chown mysql:mysql /etc/my.cnf

    8.设置路径环境变量

    1. echo 'export PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile
    2. #在/etc/profile文件追加内容
    3. source /etc/profile #生效配置文件

    9.初始化数据库

    1. cd /usr/local/mysql/bin/                      #切换目录
    2. ./mysqld \
    3. --initialize-insecure \ #生成初始化密码为空
    4. --user=mysql \ #指定管理用户
    5. --basedir=/usr/local/mysql \ #指定数据库的安装目录
    6. --datadir=/usr/local/mysql/data #指定数据库文件的存储路径

    10.添加mysqld系统服务

    1. cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system/
    2. #用于systemctl服务管理
    3. systemctl daemon-reload #刷新识别
    4. systemctl start mysqld.service #开启服务
    5. systemctl enable mysqld #开机自启动
    6. netstat -anpt | grep 3306 #查看端口,服务是否开启

    11.修改mysql 的登录密码

    mysqladmin -u root password "abc123" 	     #给root账号设置密码为abc123,原始密码为空

    12.授权远程登录

    mysql -u root -p                     #授权root用户

    grant all privileges on *.* to 'root'@'%' identified by 'abc123';   

                                                     #使用的密码是abc123,并对所有数据库和所有表有操作权限

    show databases;                    #查看当前已有的数据库

  • 相关阅读:
    vue3学习(二)--- ref和reactive
    从小白到程序员的攻略(适合自学编程的网站)
    LLaMA-2 简介:开源大型语言模型的新篇章
    缺少 Google API 密钥,因此 Chromium 的部分功能将无法使用
    自学Vue开发Dapp去中心化钱包(一)
    软件流程和管理(三):Risk Management
    《Effective Objective-C 2.0》读书笔记——对象、消息、运行期
    bgp路由更新属性
    DEJA_VU3D - Cesium功能集 之 086-地图打印(场景专题图输出)完整版
    刷爆力扣之至少是其它数字两倍的最大数
  • 原文地址:https://blog.csdn.net/2401_83784772/article/details/139219720