十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
本周给大家带来的是关于MySQL的二进制格式的安装,我们对于mysql的安装一般有两种方式,一是通过yum安装,二是通过二进制格式的安装,第一种方法yum安装的方式非常简单,如下:
10年积累的成都网站建设、成都网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先做网站后付款的网站建设流程,更有福海免费网站建设让你可以放心的选择与我们合作。
Centos6:yum install mysql-server Centos7:yum instlal mariadb-server
但是简单的背后就是各种限制,数据库文件被限制,配置文件也被限制,软件版本的限制,我们只能被动的使用,而如果我们使用二进制格式的安装就可以指定数据库文件放在什么地方,配置文件也都是我们自己制定,有利于灵活的使用,还有新版本的使用,还有一种不方便的安装方式,那便是自己手动编译安装,因为mysql文件其实蛮大的,编译过后可能超过10G,而且编译也需要大量的时间,所以我们就把别人编译过得二进制文件拿过来安装,本次实验是基于Centos7,安装包为mariadb-10.2.8-linux-x86_64.tar.gz
首先,我们需要新建一个mysql的用户,出于安全设置其登录方式为/sbin/nologin,指定其家目录为/app/mysqldb,我的这个/app是专门新建的一个文件夹,因为以后我们的数据库文件会放在这里,在生产环境中,该文件夹中的数据库会越来越大,如果我们使用的是lvm逻辑卷的方式,还可以扩展,而使用的普通分区就尽量选择大一点的文件夹,新建用户代码如下:
useradd -d /app/mysqldb -r -m -s /sbin/nologin mysql
我们需要在https://downloads.mariadb.org/获取mariadb-10.2.8-linux-x86_64.tar.gz,然后解压缩到指定的目录/usr/local/,这个是固定的目录,不可更改,我们却切换到该目录下,为了方便我们把该目录进行链接为/mysql
tar xvf mariadb-10.2.8-linux-x86_64.tar.gz -C /usr/local/ cd /usr/local/ ln -s mariadb-10.2.8-linux-x86_64/ mysql
做完这些我们查看了一下,在/etc下并没有关于mysql的相关配置,所以需要我们自己来完成该配置文件的完成,新建了一个mysql的目录,是为了便于管理,毕竟/etc下的文件很多,找到我们新建的文件中的[mysqld]的下面加入我们需要的三行代码,
mkdir /etc/mysql/ cd /usr/local/mysql/ cp support-files/my-huge.cnf /etc/mysql/my.cnf vim /etc/mysql/my.cnf [mysqld] datadir = /app/mysqldb #指定数据库的目录 innodb_file_per_table = on #将每个表都放在单独的文件夹中 skip_name_resolve = on #禁止主机名解析(不关闭,会导致数据库运行慢)
然后我们开始指定安装,我们还在/usr/local/mysql/下,为什么要这样安装呢,是因为别人在编译脚本里已经写死了,所以我们在这个相对路径下,才能安装成功
scripts/mysql_install_db --user=mysql --datadir=/app/mysqldb
安装过后,为了使我们以后的使用更加方便,所以我们需要我们进行以下操作:
cp support-files/mysql.server /etc/init.d/mysqld chkconfig --list mysqld #查看chkconfig中是否有我们的mysqld chkconfig --add mysqld #添加mysqld进入chkconfig service mysqld start #启动mysqld,跟系统应用一样的方式,不过这一步注定会失败
失败的原因是什么呢?缺少日志文件,或者说对日志没有读写的权限,所以我们要更改我们要更改文件夹的所有者或者使用ACl,为了简便,我使用了改变所有者的方式:
mkdir /var/log/mariadb/ chown mysql /var/log/mariadb/ service mysqld start #启动成功
然后我们需要把执行路径修改一下,因为我们不能使用都打出全部路径,那样也太蠢了。
vi /etc/profile.d/mysql.sh #写入文件,以后也能生效 PATH=/usr/local/mysql/bin:$PATH #增加到PATH中 . /etc/profile.d/mysql.sh #source一下,生效。
然后我们的mysql就算完成了,为什么说算呢?因为安全隐患:mysql安装之后,有安全隐患,无论什么身份只要在本机,就能以root登录mysql,mysql可以匿名链接,不过权限不大,也算是小安全隐患
解决:
/usr/bin/mysql_secure_installation
这个脚本是个交互式的,不过很简单,我们在里面关闭匿名登录,和设置口令就可以保证mysql的进一步的安全,不过下一次登录时,需要输入密码;
mysql -uroot -p #-u[user] [-hhost]不写默认本机登录 -p[PASSWD] 就是口令
至此我们的mysql的二进制的安装就完成了,然后就可以愉快的使用了!