本周给你们带来的是关于mysql的二进制格式的安装,咱们对于mysql的安装通常有两种方式,一是经过yum安装,二是经过二进制格式的安装,第一种方法yum安装的方式很是简单,以下:mysql
Centos6:yum install mysql-server Centos7:yum instlal mariadb-server
可是简单的背后就是各类限制,数据库文件被限制,配置文件也被限制,软件版本的限制,咱们只能被动的使用,而若是咱们使用二进制格式的安装就能够指定数据库文件放在什么地方,配置文件也都是咱们本身制定,有利于灵活的使用,还有新版本的使用,还有一种不方便的安装方式,那即是本身手动编译安装,由于mysql文件其实蛮大的,编译事后可能超过10G,并且编译也须要大量的时间,因此咱们就把别人编译过得二进制文件拿过来安装,本次实验是基于Centos7,安装包为mariadb-10.2.8-linux-x86_64.tar.gz
linux
首先,咱们须要新建一个mysql的用户,出于安全设置其登陆方式为/sbin/nologin,指定其家目录为/app/mysqldb,个人这个/app是专门新建的一个文件夹,由于之后咱们的数据库文件会放在这里,在生产环境中,该文件夹中的数据库会愈来愈大,若是咱们使用的是lvm逻辑卷的方式,还能够扩展,而使用的普通分区就尽可能选择大一点的文件夹,新建用户代码以下:sql
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]的下面加入咱们须要的三行代码,
vim
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
安装事后,为了使咱们之后的使用更加方便,因此咱们须要咱们进行如下操做:
bash
cp support-files/mysql.server /etc/init.d/mysqld chkconfig --list mysqld #查看chkconfig中是否有咱们的mysqld chkconfig --add mysqld #添加mysqld进入chkconfig service mysqld start #启动mysqld,跟系统应用同样的方式,不过这一步注定会失败
失败的缘由是什么呢?缺乏日志文件,或者说对日志没有读写的权限,因此咱们要更改咱们要更改文件夹的全部者或者使用ACl,为了简便,我使用了改变全部者的方式:app
mkdir /var/log/mariadb/ chown mysql /var/log/mariadb/ service mysqld start #启动成功
而后咱们须要把执行路径修改一下,由于咱们不能使用都打出所有路径,那样也太蠢了。ide
vi /etc/profile.d/mysql.sh #写入文件,之后也能生效 PATH=/usr/local/mysql/bin:$PATH #增长到PATH中 . /etc/profile.d/mysql.sh #source一下,生效。
而后咱们的mysql就算完成了,为何说算呢?由于安全隐患:mysql安装以后,有安全隐患,不管什么身份只要在本机,就能以root登陆mysql,mysql能够匿名连接,不过权限不大,也算是小安全隐患spa
解决:
/usr/bin/mysql_secure_installation
这个脚本是个交互式的,不过很简单,咱们在里面关闭匿名登陆,和设置口令就能够保证mysql的进一步的安全,不过下一次登陆时,须要输入密码;
mysql -uroot -p #-u[user] [-hhost]不写默认本机登陆 -p[PASSWD] 就是口令
至此咱们的mysql的二进制的安装就完成了,而后就能够愉快的使用了!