源码安装LNMP环境--MariaDB篇

xiaoxiao2022-06-11  19

MariaDB安装教程

MariaDB版本:10.3.9 资源下载:https://downloads.mariadb.org

一、安装前准备

卸载系统自带mariadb-libs rpm -qa|grep mariadb-libs rpm -e mariadb-libs-5.5.52-1.el7.x86_64 --nodeps

此处的mariadb-libs-5.5.52-1.el7.x86_64文件,需要根据自身系统进行更改

二、准备安装

A、安装依赖 yum -y install libaio yum -y install libaio-devel yum -y install bison yum -y install bison-devel yum -y install zlib-devel yum -y install openssl yum -y install openssl-devel yum -y install ncurses yum -y install ncurses-devel yum -y install libcurl-devel yum -y install libarchive-devel yum -y install boost yum -y install boost-devel yum -y install lsof yum -y install wget yum -y install gcc yum -y install gcc-c++ yum -y install make yum -y install cmake yum -y install perl yum -y install kernel-headers yum -y install kernel-devel yum -y install pcre-devel

B、创建MariaDB数据初始化目录

这里提前预定MariaDB的安装目录为/usr/local/mysql并且数据库目录为/data/mysql,这里要建立系统用户及组和数据库存放目录,并且将数据库存放目录赋予mysql用户及组权限

创建mysql系统用户组: groupadd -r mysql

创建系统用户mysql并加入到mysql系统用户组和禁止mysql用户shell登陆系统: useradd -r -g mysql -s /sbin/nologin -d /usr/local/mysql -M mysql

创建MariaDB安装目录: mkdir -p /usr/local/mysql

创建数据库存放目录: mkdir -p /data/mysql

改变MariaDB安装目录所属用户及组为 mysql.root: chown -R mysql:root /usr/local/mysql

改变数据库存放目录所属用户及组为 mysql.mysql: chown -R mysql:mysql /data/mysql

三、开始安装

将下载好的安装包通过FTP放到 /usr/local/src 目录下

进入源码包目录: cd /usr/local/src/

解压: tar -zxvf mariadb-10.3.9.tar.gz

进入到解压后的源码包文件夹 cd mariadb-10.3.9

输入编译参数 cmake . \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DENABLED_LOCAL_INFILE=1 \

-DENABLE_DOWNLOADS=1 \

-DEXTRA_CHARSETS=all \

-DSYSCONFDIR=/etc \

-DWITHOUT_TOKUDB=1 \

-DWITH_ARCHIVE_STPRAGE_ENGINE=1 \

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DWITH_DEBUG=0 \

-DWITH_MEMORY_STORAGE_ENGINE=1 \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_PARTITION_STORAGE_ENGINE=1  \

-DWITH_READLINE=1 \

-DWITH_SSL=system \

-DWITH_ZLIB=system \

-DWITH_LOBWRAP=0 \

-DMYSQL_DATADIR=/data/mysql \

-DMYSQL_USER=mysql \

-DMYSQL_UNIX_ADDR=/var/run/mysql/mysql.sock \

-DMYSQL_TCP_PORT=3306 \

-DMYSQL_MAINTAINER_MODE=0

编译安装 make && make install

提示:

如果编译失败请先删除CMakeCache.txt文件以及使用make clean命令,否则每次编译读取的都是这个文件,从而导致命令修改正确也会报错。

编译过程中若出现internal compiler error: Killed错误提示,请看虚拟内存篇解决

 

四、配置MariaDB及设置启动命令

进入MariaDB安装目录 cd /usr/local/mysql/

使用MariaDB用户执行脚本, 安装数据库到数据库存放目录 ./scripts/mysql_install_db --datadir=/data/mysql --user=mysql

创建MariaDB配置文件my.cnf vim /etc/my.cnf

输入以下内容并保存(:wq) [mysqld]

datadir=/data/mysql

socket=/var/run/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0

# Settings user and group are ignored when systemd is used.

# If you need to run mysqld under a different user or group,

# customize your systemd unit file for mariadb according to the

# instructions in http://fedoraproject.org/wiki/Systemd

[mysqld_safe]

log-error=/var/log/mysql/mariadb.log

pid-file=/var/run/mysql/mariadb.pid

#

# include all files from the config directory

#

!includedir /etc/my.cnf.d

创建MySQL通讯目录和日志目录 mkdir /var/run/mysql

mkdir /var/log/mysql

赋予MySQL通讯目录和日志目录权限 chown mysql:mysql /var/run/mysql

chown mysql:mysql /var/log/mysql

创建启动脚本 cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld

启动mysqld服务 /etc/init.d/mysqld start

设置systemctl启动数据库 创建并编辑mariadb.service文件 vim /usr/lib/systemd/system/mariadb.service

输入以下内容

# It's not recommended to modify this file in-place, because it will be # overwritten during package upgrades.  If you want to customize, the # best way is to create a file "/etc/systemd/system/mariadb.service", # containing #      .include /lib/systemd/system/mariadb.service #      ...make your changes here... # or create a file "/etc/systemd/system/mariadb.service.d/foo.conf", # which doesn't need to include ".include" call and which will be parsed # after the file mariadb.service itself is parsed. # # For more info about custom unit files, see systemd.unit(5) or # http://fedoraproject.org/wiki/Systemd#How_do_I_customize_a_unit_file.2F_add_a_custom_unit_file.3F # For example, if you want to increase mariadb's open-files-limit to 10000, # you need to increase systemd's LimitNOFILE setting, so create a file named # "/etc/systemd/system/mariadb.service.d/limits.conf" containing: #      [Service] #      LimitNOFILE=10000

# Note: /usr/lib/... is recommended in the .include line though /lib/... # still works. # Don't forget to reload systemd daemon after you change unit configuration: # root> systemctl --system daemon-reload

[Unit] Description=MariaDB database server After=syslog.target After=network.target

[Service] Type=simple User=mysql Group=mysql ExecStart=/usr/local/mysql/bin/mysqld_safe --datadir=/data/mysql ExecStop=/bin/kill -9 $MAINPID # Give a reasonable amount of time for the server to start up/shut down TimeoutSec=300 # Place temp files in a secure directory, not /tmp PrivateTmp=true

[Install] WantedBy=multi-user.target

--------------------------------

启动数据库服务 systemctl start mariadb.service

查看进程信息 ps -ef | grep mysql

配置环境变量 新建并编辑mysql.sh脚本 vim /etc/profile.d/mysql.sh

输入以下内容: export PATH=$PATH:/usr/local/mysql/bin/

保存退出:

:wq

赋予mysql.sh脚本可执行权限 chmod 0777 /etc/profile.d/mysql.sh

读取并执行`mysql.sh`脚本, 并即刻生效环境变量: source /etc/profile.d/mysql.sh

 

五、初始化MariaDB

进入mysql安装目录 cd /usr/local/mysql

运行MariaDB初始化脚本 ./bin/mysql_secure_installation

根据相应提示进行操作,以下用作参考

Enter current password for root (enter for none):   输入当前root密码(没有输入) Set root password? [Y/n]    设置root密码?(是/否) New password:   输入新root密码 Re-enter new password:      确认输入root密码 Password updated successfully!      密码更新成功

By default, a MariaDB installation has an anonymous user, allowing anyone to log into MariaDB without having to have a user account created for them.  This is intended only for testing, and to make the installation go a bit smoother.  You should remove them before moving into a production environment. 默认情况下,MariaDB安装有一个匿名用户, 允许任何人登录MariaDB而他们无需创建用户帐户。 这个目的是只用于测试,安装去更平缓一些。 你应该进入前删除它们生产环境。

Remove anonymous users? [Y/n]       删除匿名用户?(是/否)

Normally, root should only be allowed to connect from 'localhost'.  This ensures that someone cannot guess at the root password from the network. 通常情况下,root只应允许从localhost连接。 这确保其他用户无法从网络猜测root密码。

Disallow root login remotely? [Y/n]     不允许root登录远程?(是/否)

By default, MariaDB comes with a database named 'test' that anyone can access.  This is also intended only for testing, and should be removed before moving into a production environment. Remove test database and access to it? [Y/n] 默认情况下,MariaDB提供了一个名为“测试”的数据库,任何人都可以访问。 这也只用于测试,在进入生产环境之前应该被删除。

Reloading the privilege tables will ensure that all changes made so far will take effect immediately.

重新加载权限表将确保所有到目前为止所做的更改将立即生效。 Reload privilege tables now? [Y/n]      现在重新加载权限表(是/否)

All done!  If you've completed all of the above steps, your MariaDB installation should now be secure. 全部完成!如果你已经完成了以上步骤,MariaDB安装现在应该安全。

Thanks for using MariaDB! 感谢使用MariaDB!

--------------------------------

六、配置远程连接

进入MariaDB mysql -u root -p

输入命令回车后提示输入密码,密码为步骤七所设置。若跳过了步骤七,则默认无密码,直接再次回车即可。

显示数据库 show databases;

创建用户名和密码及相关权限 grant all privileges on 数据库名.表名 to 用户名@"IP地址" identified by "密码";

all代表所有权限 可选权限: select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。

示例 grant all privileges on *.* to 用户名@"%" identified by "密码";

重新加载权限 flush privileges;

七、备注

Useradd/Usermod (选项)(参数):

-c<备注>:加上备注文字。备注文字会保存在passwd的备注栏位中; -d<登入目录>:指定用户登入时的启始目录; -D:变更预设值; -e<有效期限>:指定帐号的有效期限; -f<缓冲天数>:指定在密码过期后多少天即关闭该帐号; -g<群组>:指定用户所属的群组; -G<群组>:指定用户所属的附加群组; -m:自动建立用户的登入目录; -M:不要自动建立用户的登入目录; -n:取消建立以用户名称为名的群组; -r:建立系统帐号; -s<shell>:指定用户登入后所使用的shell; -u<uid>:指定用户id。

编译参数注释:

# cmake . \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \     [MySQL安装的根目录] -DDEFAULT_CHARSET=utf8 \                      [设置默认字符集为utf8] -DDEFAULT_COLLATION=utf8_general_ci \         [设置默认字符校对] -DENABLED_LOCAL_INFILE=1 \                    [启用加载本地数据] -DENABLE_DOWNLOADS=1 \                     [编译时允许自主下载相关文件] -DEXTRA_CHARSETS=all \                         [使MySQL支持所有的扩展字符] -DSYSCONFDIR=/etc \                            [MySQL配置文件所在目录] -DWITHOUT_TOKUDB=1 \ -DWITH_ARCHIVE_STPRAGE_ENGINE=1 \          [MySQL的数据库引擎] -DWITH_ARCHIVE_STORAGE_ENGINE=1 \          [MySQL的数据库引擎] -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \       [MySQL的数据库引擎] -DWITH_DEBUG=0 \                              [禁用调试模式] -DWITH_MEMORY_STORAGE_ENGINE=1 \         [MySQL的数据库引擎] -DWITH_MYISAM_STORAGE_ENGINE=1 \          [MySQL的数据库引擎] -DWITH_INNOBASE_STORAGE_ENGINE=1 \        [MySQL的数据库引擎] -DWITH_PARTITION_STORAGE_ENGINE=1  \       [MySQL的数据库引擎] -DWITH_READLINE=1 \                            [MySQL的readline library] -DWITH_SSL=system \                             [通讯时支持ssl协议] -DWITH_ZLIB=system \                            [允许使用zlib library] -DWITH_LOBWRAP=0 \ -DMYSQL_DATADIR=/data/mysql \                   [MySQL数据库文件存放目录] -DMYSQL_USER=mysql \                             [MySQL用户名] -DMYSQL_UNIX_ADDR=/var/run/mysql/mysql.sock \  [MySQL的通讯目录] -DMYSQL_TCP_PORT=3306 \                         [MySQL的监听端口] -DMYSQL_MAINTAINER_MODE=0

资料参考

my.cnf资料参考: https://blog.csdn.net/xxx9001/article/details/51837595 数据库权限配置参考: https://blog.csdn.net/wengyupeng/article/details/3290415

下一篇:源码安装LNMP环境--Nginx篇

转载请注明原文地址: https://www.6miu.com/read-4930252.html

最新回复(0)