[MySQL]Linux 安装Rmp格式MySQL

[MySQL]Linux 安装Rmp格式MySQL

在Linux(CentOS6.5)操作系统下,安装MYSQL有两种方式:

一种tar安装方式,一种是rpm安装方式。

这两种安装方式有什么区别呢?尽管我们在Linux下常用tar来压缩/解压缩文件,但MYSQL的tar格式的文件其实只是mysql的文件包,并不能直接安装,需要操作configure、make、install等命令才能完成安装,是一种比较繁琐的安装方式。而rpm格式的文件是真正的安装包,相当于windows的exe文件,可以直接安装。

本文以MySQL-5.7.20 64位版本rpm格式的安装方式为例,详述MySQL的安装方式,32位的rpm版本安装方式也是如此。


(一)删除老版本的MySQL

在安装前要先确定系统是否已经安装了其他版本的MySQL,如已安装其他版本的MySQL,需先删除后再安装新版本。经本文亲测,采用如下方式删除老版本的MySQL或MySQL残留文件作为方便。

1.执行yum命令,删除MySQL的lib库,服务文件

yum remove mysql mysql-server mysql-libs mysql-server;

2.执行yum命令,删除MySQL的lib库,服务文件

find / -name mysql;

(二)RPM格式安装MySQL

当前,MySQL的最新版本为:5.7.20,从官网下载(Red Hat)MySQL的rpm安装包:
  
> mysql-community-common-5.7.20-1.el7.x86_64.rpm
> mysql-community-libs-5.7.20-1.el7.x86_64.rpm
> mysql-community-client-5.7.20-1.el7.x86_64.rpm
> mysql-community-server-5.7.20-1.el7.x86_64.rpm

1.在重新进行安装之前,为确保万无一失,我们还是再确认一下系统中是否有MySQL极其相关的RPM安装包。如果有,则先删除。

rpm -qa | grep -i mysql;

执行完上述命令后,返回空数据,则可进行第二步。否则,执行下面的命令删除MySQL的相关包文件。

yum -y remove mysql-libs*;

2.将前面提到的MySQL安装文件,拷贝到服务器【/opt】目录下,依次执行下述安装命令

rpm -ivh mysql-community-common-5.7.20-1.el7.x86_64.rpm;
rpm -ivh mysql-community-libs-5.7.20-1.el7.x86_64.rpm;
rpm -ivh mysql-community-client-5.7.20-1.el7.x86_64.rpm;
rpm -ivh mysql-community-server-5.7.20-1.el7.x86_64.rpm;

如果遇到警告

  • 无风险升级

/lib64/libc.so.6: version `GLIBC_2.18’ not found (required by /lib64/libstdc++.so.6)

原因:当前系统安装的 GLIBC 版本低于软件编译时使用的 GLIBC 版本
解决办法:升级 GLIBC

rpm -qa | grep glibc; #当前系统装了 GLIBC 的哪些包
strings /lib64/libc.so.6 | grep GLIBC; #以及最高支持版本
curl -O http://ftp.gnu.org/gnu/glibc/glibc-2.18.tar.gz
tar zxf glibc-2.18.tar.gz 
cd glibc-2.18/
mkdir build
cd build/
../configure --prefix=/usr #注意了,别修改路径
make -j2
make install
  • 旧版GPG keys

warning: mysql-5.7.20.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY

原因:这是由于yum安装了旧版本的GPG keys造成的
解决办法:后面加上

 --force --nodeps;

如:

rpm -ivh mysql-community-server-5.7.20-1.el7.x86_64.rpm --force --nodeps;
  • 缺少 libstdc++.so.6(GLIBCXX_3.4.15)

error: Failed dependencies:
libstdc++.so.6(GLIBCXX_3.4.15)

原因:CentOS6.5 缺少 libstdc++.so.6(GLIBCXX_3.4.15)
解决办法:下载libstdc+±4.8.2-16.el7并安装

rpm -ivh libstdc++-4.8.2-16.el7.x86_64.rpm  --replacefiles;
strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX;
  • 缺少numactl

mysqld: error while loading shared libraries: libnuma.so.1:cannot open shared object file: No such file or dir

原因:CentOS6.5 缺少 numactl
解决办法:运行以下命令

yum -y install numactl;

3.分别运行下述命令,初始化MySQL及设置密码

  • 初始化MySQL
cd /usr/bin;
mysqld --initialize --user=mysql;
  • 更改mysql数据库目录的所属用户及其所属组(没用创建mysql用户)
chown mysql:mysql /var/lib/mysql -R
  • 授权
chmod -R 777 mysql
  • 启动MySQL
systemctl start mysqld.service
  • 重置密码

1、打开 etc/my.cnf 文件,在文件的最后添加一行“skip-grant-tables”,保存并关闭文件

vim /etc/my.cnf

2、重启MySQL

systemctl restart mysqld.service

3、在命令行中输入以下命令(不输入密码),回车即可进入数据库

mysql -u root -p;

4、使用mysql数据库

use mysql;

5、修改root的密码

5.7版本下的mysql数据库下已经没有password这个字段了,password字段改成了authentication_string

update user set authentication_string=password("rootadmin") where user='root';

6、打开 etc/my.cnf 文件,删除最后一行的“skip-grant-tables”,保存并关闭文件

7、重启MySQL服务

systemctl restart mysqld.service

8、问题搞定!

mysql -uroot -prootadmin

9、初始化密码常见报错问题

use mysql;

用该密码登录后,必须马上修改新的密码,不然会报如下错误:

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

修改初始登录密码

alter user 'root'@'localhost' identified by '!@#a123456';
  • 授权远程连接
grant all privileges on *.* to 'root'@'%'identified by '!@#a123456' with grant option;
  • 配置默认编码为UTF8

修改/etc/my.cnf配置文件,在[mysqld]下添加编码配置

character_set_server=utf8
init_connect='SET NAMES utf8'

重启MySQL服务

  • 设置开机启动

检查是否已经是开机启动

systemctl list-unit-files | grep mysqld

开机启动

systemctl enable mysqld.service
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值