linux上安装mysql使用glibc版本安装

一、安装前的检查

1.1 检查 linux 系统版本

[root@localhost ~]# cat /etc/system-release

说明:小生的版本为 linux 64位:CentOS Linux release 7.4.1708 (Core)

1.2 检查是否安装了 mysql

[root@localhost ~]# rpm -qa | grep mysql

若存在 mysql 安装文件,则会显示 mysql安装的版本信息

如:mysql-connector-odbc-5.2.5-6.el7.x86_64

卸载已安装的MySQL,卸载mysql命令,如下:

[root@localhost ~]# rpm -e --nodeps mysql-connector-odbc-5.2.5-6.el7.x86_64

细节注意:
  检查一下系统是否存在 mariadb 数据库,如果有,一定要卸载掉,否则可能与 mysql 产生冲突。
  系统安装模式的是最小安装,所以没有这个数据库。
  检查是否安装了 mariadb:[root@localhost ~]# rpm -qa | grep mariadb
  如果有就使劲卸载干净:
systemctl stop mariadb
rpm -qa | grep mariadb
rpm -e --nodeps mariadb-5.5.52-1.el7.x86_64
rpm -e --nodeps mariadb-server-5.5.52-1.el7.x86_64
rpm -e --nodeps mariadb-libs-5.5.52-1.el7.x86_64
  1.3 系统内存检查

检查一下 linux 系统的虚拟内存大小,如果内存不足 1G,启动 mysql 的时候可能会产生下面这个错误提示:

Starting mysqld (via systemctl): Job for mysqld.service failed because the control process exited with error code.

See “systemctl status mysqld.service” and “journalctl -xe” for details.[FAILED]

小生起初安装的时候使用的是虚拟机自动分区,内存设置的是 1G,结果在这上面话费了大量的精力和时间去调试始终也启动没成功。

通过lnmp安装mysql之后,显示mysql is not running。出错如下:
  Starting MySQL…The server quit without updating PID file (/usr/local/mysql/var/localhost.localdomain.pid)
网上各种找解决方案,大部分都是什么文件权限、mysql 日志太大,重装等问题。一一试了解决方案,然并卵……
最后,打开看了lnmp的官方网站的安装教程 https://lnmp.org/install.html,才知道原来是因为自己安装时选择的mysql版本是5.6,而安装5.6以及以上版本的mysql需要服务器的内存至少在1G以上。而我是在VPS上装的。内存在256MB,不出错才有问题。瞬间心塞。
最后先卸载 lnmp,再安装。安装完全可以参照官方教程。

二、从 mysql 官网下载并上传 mysql安装包

2.1 下载 mysql 安装包

小生使用的是 mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz

2.2 上传安装文件到 linux 系统

使用 ftp 上传至 linux 系统中,上传至 /var/ftp/pub 文件目录下

在这里插入图片描述

细节注意:
  出于安全问题,建议使用 md5sum 命令核对一下文件源:[root@localhost pub]# md5sum mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz

1、下载tar包,这里使用wget从官网下载
 
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
 
2、将mysql安装到/usr/local/mysql下
 
# 解压
 
tar -xvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
 
# 移动
 
mv mysql-5.7.22-linux-glibc2.12-x86_64 /usr/local/
 
# 重命名
 
mv /usr/local/mysql-5.7.22-linux-glibc2.12-x86_64 /usr/local/mysql
 
3、新建data目录
 
mkdir /usr/local/mysql/data
 
4、新建mysql用户、mysql用户组
 
# mysql用户组
 
groupadd mysql
 
# mysql用户
 
useradd mysql -g mysql
 
5、将/usr/local/mysql的所有者及所属组改为mysql
 
chown -R mysql.mysql /usr/local/mysql
 
6、配置
 
/usr/local/mysql/bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data
 
# 如果出现以下错误:
 
复制代码
2018-07-14 06:40:32 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize
2018-07-14 06:40:32 [ERROR]   Child process: /usr/local/mysql/bin/mysqldterminated prematurely with errno= 32
2018-07-14 06:40:32 [ERROR]   Failed to execute /usr/local/mysql/bin/mysqld --bootstrap --datadir=/usr/local/mysql/data --lc-messages-dir=/usr/local/mysql/share --lc-messages=en_US --basedir=/usr/local/mysql
-- server log begin --
 
-- server log end --
复制代码
# 则使用以下命令:
 
/usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --initialize
# 如果出现以下错误:
 
/usr/local/mysql/bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
# 则执行以下命令:
 
yum -y install numactl
 
# 完成后继续安装:
 
/usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --initialize
# 编辑/etc/my.cnf
 
复制代码
[mysqld]
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
socket=/tmp/mysql.sock
user=mysql
port=3306
character-set-server=utf8
# 取消密码验证
skip-grant-tables
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# skip-grant-tables
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
复制代码
7、开启服务
 
# 将mysql加入服务
 
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
 
# 开机自启
 
chkconfig mysql on
 
# 开启
 
service mysql start
 
8、设置密码
 
# 登录(由于/etc/my.cnf中设置了取消密码验证,所以此处密码任意)
 
/usr/local/mysql/bin/mysql -u root -p
 
# 操作mysql数据库
 
>>use mysql;
 
# 修改密码
 
>>update user set authentication_string=password('你的密码') where user='root';
 
>>flush privileges;
 
>>exit;
 
9、将/etc/my.cnf中的skip-grant-tables删除
 
10、登录再次设置密码(不知道为啥如果不再次设置密码就操作不了数据库了)
 
/usr/local/mysql/bin/mysql -u root -p
 
 >>ALTER USER 'root'@'localhost' IDENTIFIED BY '修改后的密码';
 
>>exit;
 
11、允许远程连接
 
/usr/local/mysql/bin/mysql -u root -p
 
>>use mysql;
 
>>update user set host='%' where user = 'root';
 
>>flush privileges;
 
>>eixt;
 
12、添加快捷方式
 
ln -s /usr/local/mysql/bin/mysql /usr/bin

猜你喜欢

转载自blog.csdn.net/qq_2662385590/article/details/112970564