centos7的yum源自带的数据库是mariadb,而mysql是没有的,这儿就来说一下linux系统中的centos7怎么安装mysql。
一、yum安装
通过yum安装的话,好处就是安装速度快,缺点就是无法个性化设置,无法增删安装的工具,也就是说,我们通过yum安装的话,功能都是已经规定好了的,我们无法再增加其他的工具模块,或者有一些模块我们根本用不上,但是也给安装上了。
1、添加yum库
既然是通过yum安装,而yum源里面又没有带有mysql,自然得加上mysql的yum源才能通过yum方式来安装。
至于怎么找到yum库包的话呢,就点这儿吧
把yum库包上传到机器上,我用的xshell,直接rz搞定,通过rpm命令添加yum库
安装Mysql是需要root权限的,我这直接用的root账户登录,如果用的普通账户的小伙伴是要提权的!
[root@localhost ~]# rpm -ivh mysql80-community-release-el7-1.noarch.rpm
看一下Mysql源添加上没
[root@localhost ~]# yum repolist
可以看到,mysql源已经添加成功了。
我们通过这种方法安装的mysql通常都是mysql的最新版本,如果想要安装mysql的其他版本,要去修改mysql的yum源:
vim /etc/yum.repos.d/mysql-community.repo
进来之后可以看到如下:
# Enable to use MySQL 5.5
[mysql55-community]
name=MySQL 5.5 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.5-community/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
# Enable to use MySQL 5.6
[mysql56-community]
name=MySQL 5.6 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
# Enable to use MySQL 5.7
[mysql57-community]
name=MySQL 5.7 Community Server
baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/
enabled=0
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=http://repo.mysql.com/yum/mysql-8.0-community/el/7/$basearch/
enabled=1
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
如果你是要安装mysql5.7,那就把mysql5.7源下面的enable=0改成1,再把mysql8.0的enable=1改成enable=0,总之1代表开启,0代表关闭,根据自己的需要改。
改完直接yum安装就行,就会自动安装我们规定的版本了,我这儿安装的是mysql8.0的,需要安装其他版本的小伙伴一定记得改源!
yum install -y mysql-community-server.x86_64
安装完成之后启动服务,添加开机自动启动
systemctl restart msyqld
systemctl enable mysqld
mysql安装之后是会自动给我们分配一个初始密码的,这点和mariadb不一样。密码呢就保存在/var/log/msyqld.log
grep "password" /var/log/mysqld.log |awk -F"root@localhost:"
ftq/iyVps0j+
通初始密码ftq/iyVps0j+登录数据库
[root@localhost ~]# mysql -u root -p'ftq/iyVps0j+'
进入数据库之后修改密码,不修改密码的话是不允许进行其他操作的。
mysql> alter user 'root'@'localhost' identified by 'CentoSby@123';
exit退出重新以新密码进入数据
mysql -u root -p'CentoSby@123'
进入之后随便敲点命令
mysql> create datebase test;
Query OK, 1 row affected (0.10 sec)
OK,关于数据库的yum安装方法到此为止!
二、预编译安装
预编译安装的特点:通用性强,可以调整部分设置,不需要编译,速度也是杠杠的!
首先吧,得找包吧,找包就不说呢,不懂得小伙伴呢就点链接进去看一下
找包点我
[root@localhost ~]# yum install libaio #安装基础环境
创建mysql的专用用户组
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
这里呢我安装的mysql版本是5.7.19,想要安装其他版本的话呢可以自己去官网找一下其他包!
[root@localhost ~]# tar xf mysql-5.7.19-linux-glibc2.12-x86_64.tar.gz
解压包,没什么说的
[root@localhost ~]# mv mysql-5.7.19-linux-glibc2.12-x86_64 /usr/local/mysql
把解压出来的文件移动到/usr/local/下并且把名字改得精简一点,或者也可以直接做一个链接文件过去。如下:
[root@localhost ~]# ln -s mysql-5.7.19-linux-glibc2.12-x86_64 mysql
到这儿安装就已经完成了,接下来就该初始化了。
所谓的初始化就是设置mysql的启动参数:用户,组,权限,工作目录,配置文件
cd mysql #这儿要注意路径,很重要!!
mkdir mysql-files #创建一个子主题
chmod 750 msyql-files
chown -R mysql.mysql . #这儿如果权限没给到会导致初始化失败的
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
这需要注意一下,初始化的时候会给我们分配一个超管密码
找个地方把密码记住!
bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data
chown -R root .
chown -R mysql data mysql-files
vim /etc/my.cnf 写入以下内容:
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
建议如果有原来的my.cnf的话先备份一份!
初始化完毕了,接下来启动看一下!
可以用mysql自带的一个脚本开启服务
cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld #建立mysql系统启动服务
chkconfig mysqld on #设置开机自启(这些都是centos6系列的命令)
service mysqld start #启动服务
Starting MySQL.Logging to '/usr/local/mysql/data/mysql2.err'.
SUCCESS!
出现这两行就表示开启成功了
启动成功之后,可以试着进入数据了,用上面分配的超管密码登录
mysql -uroot -p'y:+2h#iTcmP6'
OK!预编译完成了!
三、源码包编译安装
源码包安装特点:
1>可以根据硬件品台选用合适的编译器来优化编译后的二进制代码;
2>根据不同的软件平台选用合适的编译器来优化编译后的二进制代码;
3>可以针对特定的应用场景选择特定的组件;
4>根据业务所需存储的数据内容选择特定的字符集等优点;
缺点:
1>对编译不够了解造成编译参数使用不当可能使编译出来的二进制代码不够稳定;
2>对应用环境的把握失误而使用的优化参数可能反而是系统性能更差;
3>安装速度相对较慢,较慢,较慢!
首先第一步不多说,找包!
找包点我
安装的mysql的版本:5.7.19
把编译环境安装了,如果编译环境没装,会导致编译的时候报各种错,曾经就看见有的小伙伴没有安装就编译环境就直接开干了,编译的时候各种报错,然后百度各种查,查一次就装一个包,其根本问题就是编译环境没有安装!
yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make cmake
再一个就是大家练习的时候应该都是用虚拟机来练习,内存和硬盘都尽量给大点!
与预编译一样,也是需要我们手动创建专用用户:
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
上传解压源码包
tar -xvf msyql-5.7.19.tar.gz
tar -xvf boost_1_59_0.tar.gz
mv boost_1_59_0 mysql-5.7.19/
编译
上面说过了,如果没有安装编译环境,这儿就会报错!当然,磁盘空间不够的时候也会报错的哦!
cmake . \
-DWITH_BOOST=boost_1_59_0/ \
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DSYSCONFDIR=/etc \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DINSTALL_MANDIR=/usr/share/man \
-DMYSQL_TCP_PORT=3306 \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_READLINE=1 \
-DWITH_SSL=system \
-DWITH_EMBEDDED_SERVER=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1
因为是安装测试,所以随便装了一些组件!
编译完成之后就该安装了,编译速度还是很快的。
但是到了安装这一步之后速度就不那么喜人了,因为是在虚拟机安装,所以才给了2个G内存,导致安装了将近2个小时,小伙伴们做的时候内存尽量给大点!
make && make install
安装完成之后接着初始化:
cd /usr/local/mysql/
mkdir mysql-files
chown -R mysql.mysql /usr/local/mysql
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
这儿会给我们生成一个临时密码,注意保存!
/usr/local/mysql/bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data
vi /etc/my.cnf 写入以下内容:
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
初始化到这就完成了,接下来启动mysql:
与预编译一样,使用它自带的脚本启动
cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on
service mysqld start
查看一下是否启动
ps aux |grep msyqld
进入数据库
mysql -u root -p'-xf>PBVux6qp'