MySQL是一个开源的关系型数据库管理系统,由于性能高、成本低、可靠性好,已经成为最流行的开源数据库,因此被广泛地应用在Internet上的中小型网站中。随着MySQL的不断成熟,它也逐渐用于更多大规模网站和应用,比如维基百科、Google和Facebook等网站。非常流行的开源软件组合LAMP中的“M”指的就是MySQL。但是mysql公司在2009年被oracle间接收购,因此导致自由软件社群们对于Oracle是否还会持续支持MySQL社群版(MySQL之中唯一的免费版本)有所隐忧,MySQL的创始人麦克尔·维德纽斯以MySQL为基础,成立分支计划MariaDB。而原先一些使用MySQL的开源软件逐渐转向MariaDB或其它的数据库。例如维基百科已于2013年正式宣布将从MySQL迁移到MariaDB数据库。
安装MySQL
在开始使用mysql前,首先需要安装mysql,下面说一下在linux系统下(centos7)分别二进制安装mysql和mariaDB
首先准备好安装包,可以到官网中下载,这里默认安装的是mysql5.7和mariadb10.2。
二进制安装mysql5.7
mkdir /apps/mysql //建立安装目录,可自定义
getent passwd mysql //首先判断系统上有没有mysql账户
useradd -r -s /sbin/nologin -d /apps/mysql mysql //如果没有,创建mysql系统账户,并指定家目录
chown mysql:mysql /apps/mysql //更改安装目录权限为mysql账户所有
tar xvf mysql-5.7.27-el7-x86_64.tar.gz -C /usr/local/ //解压安装包到/usr/local
cd /usr/local/
ln -sv mysql-5.7.27-el7-x86_64/ mysql //创建软连接mysql指向解压包
echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh //添加PATH变量
. /etc/profile.d/mysql.sh //加载PATH变量生效
mysqld --initialize --datadir=/apps/mysql --user=mysql //自动在/data/mysql下生成安装文件,注意此命令最后会生成随机字符串密码,建议记录下来
vim /etc/my.cnf //打开配置文件,需要修改下面几处选项,以指定到更改后的路径
[mysqld]
datadir=/apps/mysql
socket=/apps/mysql/mysql.sock
log-error=/apps/mysql/mysql.log
pid-file=/apps/mysql/mysql.pid
[client]
socket=/apps/mysql/mysql.sock
保存退出
cd /usr/local/mysql
cp support-files/mysql.server /etc/init.d/mysqld //复制启动文件
chkconfig --add mysqld //手动添加启动服务
service mysqld start //开启mysql,此时会打开3306端口
mysqladmin -uroot -p'原密码' password '新密码' //建议更改密码,原密码有在上面步骤中生成
mysql -p'新密码' //直接登录
mariadb的安装其实和mysql差不多,中间只是有稍微的差异:
二进制安装mariadb,大多步骤都和上面安装mysql意思一样,这里就不注释了:
useradd -s /sbin/nologin -r -d /apps/mysql mysql
mkdir /apps/mysql
chown mysql:mysql /apps/mysql
tar xf mariadb-10.2.27-linux-x86_64.tar.gz -C /usr/local/
cd /usr/loacl
ln -sv mariadb-10.2.27-linux-x86_64/ mysql
chown -R root:root mysql/ //这里创建软连接后可能目录权限有变,
mkdir /etc/mysql/
cd /usr/local/mysql
cp support-files/my-large.cnf /etc/mysql/my.cnf //这里最好自己创建和复制配置文件模板
vim /etc/mysql/my.cnf
[mysqld]中添加三个选项:
datadir = /apps/mysql
innodb_file_per_table = on //可以不写
skip_name_resolve = on 禁止主机名解析,建议使用
./scripts/mysql_install_db --datadir=/data/mysql --user=mysql 此命令要在/usr/local/mysql路径下执行
cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
service mysqld start
echo 'PATH=/user/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh
source /etc/profile.d/mysql.sh
mysql_secure_installation //mariadb默认安装是没有登录密码的,建议安全加密
mysql -uroot -p密码 //直接登录