1、通过编译、二进制安装MySQL5.7
二进制安装:
1)安装依赖包
yum -y install libaio numactl-libs
2)创建用户和组
groupadd mysql useradd -r -g mysql -s /bin/false mysql
3)准备程序相关文件
wget http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz tar xf mysql-5.7.33-linux-glibc2.12-x86_64.tar.gz -C /usr/local cd /usr/local/ ln -s mysql-5.7.33-linux-glibc2.12-x86_64/ mysql chown -R root.root /usr/local/mysql/
4)准备环境变量
echo 'PATH=/usr/local/mysql/bin:$PATH' > /etc/profile.d/mysql.sh . /etc/profile.d/mysql.sh
5)准备配置文件
cp /etc/my.cnf{,.bak} vim /etc/my.cnf [mysqld] datadir=/data/mysql skip_name_resolve=1 socket=/data/mysql/mysql.sock log-error=/data/mysql/mysql.log pid-file=/data/mysql/mysql.pid [client] socket=/data/mysql/mysql.sock
6)初始化数据库文件
生成root空密码 mysqld --initialize-insecure -user=mysql --datadir =/data/mysql
7)准备服务脚本并启动mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld chkconfig --add mysqld service mysqld start
编译安装:
1)安装依赖
yum -y install gcc gcc-c++ cmake bison bison-devel zlib-devel libcurl-devel \ libarchive-devel boost-devel ncurses-devel gnutls-devel libxml2-devel \ openssl-devel libevent-devel libaio-devel perl-Data-Dumper
2)创建用户
useradd -r -s /sbin/nologin -d /data/mysql mysql
3)下载并解压缩mysql源码包
tar xvf mysql-5.6.51.tar.gz -C /usr/local/src
4)源码编译安装 MySQL
cd /usr/local/src/mysql-5.6.51/ cmake . \ -DCMAKE_INSTALL_PREFIX=/apps/mysql \ -DMYSQL_DATADIR=/data/mysql/ \ -DSYSCONFDIR=/etc/ \ -DMYSQL_USER=mysql \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_ARCHIVE_STORAGE_ENGINE=1 \ -DWITH_BLACKHOLE_STORAGE_ENGINE=1 \ -DWITH_PARTITION_STORAGE_ENGINE=1 \ -DWITHOUT_MROONGA_STORAGE_ENGINE=1 \ -DWITH_DEBUG=0 \ -DWITH_READLINE=1 \ -DWITH_SSL=system \ -DWITH_ZLIB=system \ -DWITH_LIBWRAP=0 \ -DENABLED_LOCAL_INFILE=1 \ -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci make && make install
5)准备环境变量
echo 'PATH=/apps/mysql/bin:$PATH' > /etc/profile.d/mysql.sh . /etc/profile.d/mysql.sh
6)生成数据库文件
cd /apps/mysql/ scripts/mysql_install_db --datadir=/data/mysql/ --user=mysql
7)准备配置文件
cp -b /apps/mysql/support-files/my-default.cnf /etc/my.cnf
8)准备启动脚本,并启动服务
cp /apps/mysql/support-files/mysql.server /etc/init.d/mysqld chkconfig --add mysqld service mysqld start
9)安全初始化
mysql_secure_installation
2、二进制安装mariadb10.4
(1)在CentOS 7系统上,yum info mariadb可以找到提供mariadb包的官方网站,在到官方网站下载最新的mariadb包,然后rz到Linux系统上去
wget http://ftp.hosteurope.de/mirror/archive.mariadb.org//mariadb-10.4.5/bintar-linux-glibc_214-x86_64/mariadb-10.4.5-linux-glibc_214-x86_64.tar.gz
(2)准备用户
useradd -r -d /app/mysqldb -m -s /sbin/nologin mysql //-r创建系统用户,-d指定家目录,-m强制创建家目录,-s指定shell不允许这个用户登录
(3)准备数据库目录
创建mysql用户指定的家目录就是数据库目录,但是建议使用逻辑卷,因为这个目录是存放数据库的,会逐渐增大,而逻辑卷能够扩展。
(4)准备二进制程序
1.tar xvf mariadb-10.2.8-linux-x86_64.tar.gz -C /usr/local //默认是放在/usr/local目录下 2.cd /usr/local 3.ln -s mariadb-10.2.8-linux-x86_64.tar.gz/ mysql //在/usr/local下, mariadb的数据库的目录已经生成,但是这个目录不符合要求,要求mariadb数据库必须放在mysql目录下,所以有两种方法解决,一是改名,将生成的mariadb数据库目录改为mysql,二是创建软链接,我们就选择创建软链接的方式
(5)准备配置文件
1.cd /usr/local/mysql/support-files //这个目录下的一些文件可以当mysql的配置文件,我们就选my-huge.cnf作为mysql的配置文件 2.mkdir /etc/mysql/ //建立mysql配置文件的目录 3.cp my-huge.cnf /etc/my.cnf //mysql的配置文件名也是有要求的,所以要改名为my.cnf 4.vim /etc/my.cnf //复制过来之后还要修改一下配置文件 [mysqld] datadir = /data/mysqldb //数据库的数据放在哪,关键的一行,必须加,下面两行可以不加 innodb_file_per_table = on//数据库中有很多表,加上这一行就可以使每个表单独生成一个文件 skip_name_resolve = on //为了加速访问速度,忽略名字的反向解析 这样配置文件就编辑好了
(6)创建数据库文件
1.cd /usr/local/mysql/ 2./scripts/mysql_install_db --user=mysql --datadir=/data/mydata //创建mysql的数据库,指定数据库的路径以及用户名身份,执行完之后就会在/app/mysqldb下生成了数据库文件。 注意:创建mysql的系统数据库,系统提供了一个脚本,我们直接可以利用它来生成mysql的系统数据库,这个脚本就在scripts下,但是不要进去运行脚本,否则会报错,必须在/usr/local/mysql/下运行脚本 3.ls /app/mysqldb //查看一下生成的数据库文件
(7)准备日志文件
1.mkdir /var/log/mariadb/ //创建日志文件所在的目录 2.chown mysql /var/log/mariadb/ //因为是以mysql用户的身份来写日志的,所以创建了这个目录还必须修改一下其所属人为mysql,以保证mysql用户能对/var/log/mariadb/目录有写权限
(8)启动服务
1.cp support-files/mysql.server /etc/init.d/mysqld //在/usr/local/mysql/support-files目录下有一个现成的服务脚本,但是这个服务脚本必须放在规定的目录/etc/init.d/下才能使用,复制到这个目录下,并改名为mysqld,将来这个服务名就叫mysqld 2.chkconfig --add mysqld 3.service mysqld start //开启服务,成功开启服务之后,会打开了3306端口 4.ss -nutl //查看一下3306端口是否打开
(9)添加PATH变量,以方便来运行mysql程序
1.vim /etc/profile.d/mysql.sh PATH=/usr/local/mysql/bin:$PATH 2./etc/profile.d/mysql.sh //使添加的PATH变量生效
(10)运行mysql安全脚本
1.cd /usr/local/mysql 2.mysql_secure_installation
(11)测试,运行一下mysql程序,-u指定用户,-p后面跟口令(该口令是上一步运行安全脚本给root用户设置的口令)
mysql -uroot -p口令 update user set password=password(‘123456’) where user=‘root’; grant all privileges on . to ‘root’@’%’ identified by ‘123456’ with grant option;