标签:区别 add mysq mysql用户 替代品 编辑 local lis 进入
目的:通过二进制方法安装mariadb准备工作:
操作系统:CentOS7
安装所需软件包:mariadb-10.2.23-linux-x86_64.tar.gz
可在官网进行下载,此处用的最新版本。
注:mysql和mariadb除了名字一样,内部其实都一样。但是,mariaDB在各方面都是mysql创新和提高版本,而不是简单的替代品。因此,此处使用的为mariadb最新版。
mysql需使用制定用户,系统默认没有,需手动创建mysql用户及mysql组来使用mariadb
groupadd -r -g 336 mysql
注:-r为创建系统组,-g为制定组ID
useradd -r -g mysql -u 336 -s /sbin/nologin -d /data/mysql mysql
注:-r创建系统用户,-g制定主组,-u制定UID,-s制定shell类型,-d制定其家目录(mysql程序放在/usr/locar下,但是程序本身需要存放数据,yum安装数据库会默认放在/var/lib/mysql/下,可以自己指定一个大的目录或逻辑卷来存放,因为使用逻辑卷存放的话,万一空间不够还可以扩充。此处使用的指定目录。)
注意,用户制定的目录不会自动生成,需要手动创建:
mkdir /data/mysql
创建好目录后,所属者所属组也应改为mysql:
chown -R mysql.mysql /data/mysql
在官网下载编译好的二进制文件,然后使用tar解压缩。注意:因为是官方编译好的,所以解压缩的时候,必须解压缩到/usr/local/下:
tar xvf mariadb-10.2.23-linux-x86_64.tar.gz -C /usr/local/
进入该目录:
cd /usr/local/
注:要求是该目录下的mysql文件,文件名不符合规则,因此,可以选择更改文件名或者建立软连接。显然,创建软连接更方便,将来想更换更新版本的时候,只需要更改一下软连接所指向的源文件即可。
ln -s mariadb-10.2.23-linux-x86_64/ mysql
创建好的软连接默认所属者和所属组不存在,因此,需要将所属者和所属组改为mysql。需要带-R来将目录下所有文件都进行更改:
chown -R root.root /usr/local/mysql/
在安装完成后,默认是不可以使用的,因为mysql不在变量PATH中,我们可以利用重定向来将其添加至PATH变量中,并写入文件使其永久有效:
echo PATH=‘/usr/local/mysql/bin:$PATH‘ > /etc/profile.d/mysql.sh
刚添加的不会立即生效,需要手动扫描令其生效:
. /etc/profile.d/mysql.sh
数据库在创建mysql用户时已创建。
进入到mysql所在目录下:
cd /usr/local/mysql
我们可以利用/usr/local/mysql/scripts/mysql_install_db来帮我们生成数据库所需的数据文件:
./scripts/mysql_install_db --datadir=/data/mysql --user=mysql
注意:
当我们想运行/usr/local/mysql/scripts/mysql_install_db时,自身必须在/usr/local/mysql目录下才可以运行。因为系统会默认在/usr/local/mysql/bin中运行程序。
若自身在制定目录下,系统仍然报错:“/bin/mysqld:加载共享库时出错:libaio.so.1:无法打开共享对象文件:没有这样的文件或目录”,就是缺少共享库“libaio”,需使用yum进行安装:
yum install libaio
系统自带的文件不符合要求,我们可以自己创建一个:
mkdir /etc/mysql
注:mysql默认有指定目录,有优先级之分,详情请自行百度。。。
当然,手写一个配置文件不现实,我们可以参考/usr/local/mysql/support-files/里的模板文件来生成。里面很多模板文件都符合要求,但是它们有一点小区别,就是适合于什么场景。其中,my-huge.cnf号称最大的环境(但是也只有1G-2G,因为mysql出身比较小...),我们可以将其拷贝至/etc/mysql/下,取名为my.cnf:
cp /usr/local/mysql/support-files/my-huge.cnf /etc/mysql/my.cnf
之后,我们可以利用vim来编辑该文件,在[mysqld]下面添加一行:
vim /etc/mysql/my.cnf
[mysqld]
datadir=/data/mysql
注:加这一行的目的是:我们制定了数据库的存放位置,需要在这里加上这行来告诉mysql数据库存放目录。其他不需要改变。后期还有很多可优化的选项,此处不多啰嗦。
当然,手写脚本不现实,我们可以参考官方提供的模板脚本/usr/local/mysql/support-files/mysql.server来生成一个脚本。当然,要当脚本使用,就放到标准的/etc/init.d/下,可以起名为mysqld:
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
可以使用命令来查看服务,会发现mysqld不在里面:
chkconfig --list
这时可以使用add来将其加入服务列表:
chkconfig --add mysqld
然后启动mysqld:
service mysqld start
至此,就启用成功了,数据库就可以使用了,端口号为3306。可以直接使用mysql命令来直接连接。但是,这样的mysql一点都不安全,任何人都可以随意连接,这时就需要下一步安全加固。
我们可以使用该命令来将其安全加固:
mysql_secure_installation
注:执行命令后,确认加固,为其添加密码,并将所有的匿名用户全部删除。即可达到无账户密码无法登陆。
到此,便完成了mysql的全部安装过程并将其进行简单加固,可以使用mysql来测试连接是否成功:
mysql -uroot -ppassword
连接后查看状态是否正常:
>status
正常连接后便完成了mysql的二进制方式安装,后续具体使用这里不多累赘。
标签:区别 add mysq mysql用户 替代品 编辑 local lis 进入
原文地址:https://blog.51cto.com/14230410/2385780