linux下安装mysql-5.7.27详细步骤及问题解决

一、清理老的mysql

(1)卸载已有的mysql
   查找以前是否装有mysql命令:
    rpm -qa|grep -i mysql
   停止mysql服务,卸载之前安装的mysql
    rpm -ev 包名
   如果卸载过程中报依赖错误,直接在卸载命名后面加参数 --nodeps
     rpm -ev 包名 --nodeps
(2)查找之前老版本mysql的文件并删除老版本mysql的文件
  1  find / -name mysql
  2  # 出来一堆列表
  3  # 一个一个删除就ok

二、安装前的准备

(1)安装mysql之前需要确保系统中有libaio依赖
  1  yum search libaio
  2  yum install libaio
(2)下载安装包(tar.gz的包,非rpm和yum)
  1  cd /usr/
  2  mkdir database
  3  cd database
  4  wget http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz

**官网一般都很慢,所以使用网易国内镜像地址:
  ** http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
  5.7.27镜像源几乎全部失效 原因未知 更换版本为5.7.32
  网易开源镜像站: http://mirrors.163.com/mysql/Downloads/MySQL-5.7/mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz
  清华大学开源软件镜像站: https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-5.7/mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz
  
(3)解压
  1  tar -zxvf mysql-5.7.27-linux-glibc2.12-x86_64.tar.gz
  
  2  mv mysql-5.7.27-linux-glibc2.12-x86_64 mysql5.7 #重命名为mysql5.7

三、安装

(1)添加用户和组
  1  #添加用户组
  2  groupadd mysql
  3  #添加用户mysql 到用户组mysql(使用-r参数表示mysql用户是一个系统用户,不能登录)
  4  useradd -r -g mysql mysql
  5  #添加完用下面命令测试,能看到mysql用户的信息
  6  id mysql
(2)手动创建MySQL data目录
  1  cd /usr/database/mysql5.7/
  2  mkdir data
(3)目录权限设置
  1  将mysql及其下所有的目录所有者和组均设为mysql
  2  chown -R mysql:mysql /usr/database/mysql5.7/
  3  查看是否设置成功,执行下面命令,可以看到文件的所有者和组都变成了mysql
  4  cd /usr/database/
  5  ll
  6  结果中出现:drwxr-xr-x 10 mysql mysql 4096 Jul 3 13:57 mysql5.7

(4)配置my.cnf文件
此文件非常重要,初始化之前要把此文件放到 /etc 目录下
  1  rm -rf /etc/my.cnf
  2  vim /etc/my.cnf
  3  #此文件内容如下(路径根据自己的实际情况):

[client]
port = 3306
socket = /tmp/mysql.sock
default-character-set=utf8mb4

[mysqld]
init-connect='SET NAMES utf8mb4'
basedir=/usr/database/mysql5.7       #根据自己的安装目录填写 
datadir=/usr/database/mysql5.7/data #根据自己的mysql数据目录填写
socket=/tmp/mysql.sock
max_connections=200 # 允许最大连接数
character-set-server=utf8mb4 # 服务端使用的字符集默认为8比特编码的latin1字符集
default-storage-engine=INNODB # 创建新表时将使用的默认存储引擎

#skip-grant-tables
#此行忘记密码修改用的 修改时再启动(可以跳过密码验证)

[mysql]  
default-character-set = utf8mb4

(5)初始化mysql
  1  /usr/database/mysql5.7/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/database/mysql5.7 --datadir=/usr/database/mysql5.7/data
  2  #注意:mysqld --initialize-insecure初始化后的mysql是没有密码的
  3  #重新修改下各个目录的权限
  4  chown -R root:root /usr/database/mysql5.7/ #把安装目录的目录的权限所有者改为root
  5  chown -R mysql:mysql /usr/database/mysql5.7/data/ #把data目录的权限所有者改为mysql

这里容易出问题的地方:

可能初始化会报错 ,
例如 bin/mysqld: error while loading shared libraries: libnuma.so.1: 安装mysql
解决办法: yum -y install numactl 输入这条命令即可
(如果安装mysql出现了以上的报错信息.这是却少numactl这个时候如果是Centos就yum -y install numactl就可以解决这个问题了. ubuntu的就sudo apt-get install numactl就可以解决这个问题了)
来源链接:https://blog.csdn.net/liukai6/article/details/78323364

(6)启动mysql
  1  /usr/database/mysql5.7/bin/mysqld_safe --user=mysql &
(7)修改密码
  1  cd /usr/database/mysql5.7/bin/
  2  ./mysql -u root -p # 默认没有密码,直接敲回车就可以
  3  use mysql;
  4  update user set authentication_string=password('这里填你设置的密码') where user='root';
  5  flush privileges;
  6  exit;
(8)测试登录
  1  cd /usr/database/mysql5.7/bin/
  2  ./mysql mysql -u root -p
  3  输入密码后,应该就连接上了
  4  show databases;
  5  exit; #退出
(9)copy启动脚本并将其添加到服务且设置为开机启动
  1  #mysql启动脚本为:/usr/database/mysql5.7/support-files/mysql.server
  2  cp /usr/database/mysql5.7/support-files/mysql.server /etc/init.d/mysql
  3  #添加服务
  4  chkconfig --add mysql
  5  # 显示服务列表
  6  chkconfig --list
  7  # 开机启动
  8  chkconfig --level 345 mysql on
  9  # 测试添加的服务是否能用
  10  service mysql status #查看状态
  11  service mysql start #启动mysql服务
  12  service mysql stop #停止mysql服务
  13  service mysql restart #重启mysql服务

四、设置外网可以访问

1  在mysql的bin目录下执行:mysql -uroot -p密码 登陆到数据库
  如果进入不了数据库,出现 -bash: mysql: command not found 报错.解决办法 查看下方的相关说明(3)
  2  执行:use mysql;
  3  执行:select host,user from user;
  4  可以看到user为root,host为localhost的话,说明mysql只允许本机连接,那么外网,本地软件客户端就无法连接了。
  5  调整方法:
  6  执行:update user set host='%' where user ='root';
  7  执行刷新:flush privileges;
  8  OK!现在可以访问了!
  9  如果还访问不了,那可能是防火墙问题,修改下防火墙就ok,修改方法这里就不提了,网上很多资料

五、相关说明

(1)mysql服务的启动和停止命令
  1  service mysql status #查看状态
  2  service mysql start #启动mysql服务
  3  service mysql stop #停止mysql服务
  4  service mysql restart #重启mysql服务
(2)怎么在Linux中登录mysql
  1  #进入mysql安装目录的bin目录,然后输入以下命令
  2  ./mysql -u root -p
  不行就 mysql -u root -p
  3  #然后输入密码就登录成功
  4  exit;  #退出mysql
  
 (3) 如果进入数据库出现 -bash: mysql: command not found 报错
  # mysql -u root
-bash: mysql: command not found

原因:这是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,当然会找不到命令,我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件。
首先得知道mysql命令或mysqladmin命令的完整路径,比如mysql的路径是:/usr/database/mysql5.7,我们则可以这样执行命令:

ln -s /usr/database/mysql5.7/bin/mysql /usr/bin

  • 5
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值