MySql教程

Linux中使用tar包,指定路径安装MySQL(大版本相同)不同于编译

本文主要是介绍Linux中使用tar包,指定路径安装MySQL(大版本相同)不同于编译,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

1.检查服务器是否已安装MySQL,如已安装则将其卸载:
rpm -qa|grep mysql (-q表示使用询问模式,当遇到任何问题时,rpm指令会先询问用户。-a表示查询所有套件。)[新机无mysql]

  1. whereis mysql
  2. rm -rf /usr/lib64/mysql/
  3. rm -rf /usr/share/mysql/
  4. find / -name mysql
  5. rm -rf /etc/selinux/targeted/active/modules/100/mysql
  6. rm -rf /var/tmp/dracut.6oP6zK/initramfs/usr/lib64/mysql
    在这里插入图片描述
    在这里插入图片描述

2.检查服务器是否已安装Mariadb,如已安装则将其卸载:

  1. rpm -qa|grep mariadb
  2. rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
  3. rpm -e --nodeps xxx(文件名) //卸载 (-e表示删除指定的套件)
  4. rm -rf (路径)删除(-r表示迭代,-f表示不询问,强制删除)

3.上传MySQL包,并解压

  1. tar -zvxf mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz (-z表示通过gzip指令处理备份文件。
    -v表示显示指令执行过程。
    -x表示从备份文件中还原文件。
    -f表示指定备份文件。)

4.建议改名
mv mysql-5.7.22-linux-glibc2.12-x86_64 mysql

把改名后的mysql移动到/usr/local下
mv mysql /usr/local/

5.添加MySQL组和用户
groupadd mysql
useradd -r -g mysql mysql (-r表示建立系统账号,-g表示指定所属群组)

6.创建mysql数据目录,回到根目录

mkdir -p /data/mysql

7.授权
chown mysql:mysql -R /data/mysql

8.创建配置文件
vi /etc/my.cnf
如下内容:
[mysqld]
bind-address=0.0.0.0
port=3306
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
socket=/tmp/mysql.sock
log-error=/data/mysql/mysql.err
pid-file=/data/mysql/mysql.pid
#character config
character_set_server=utf8mb4

保存退出!

9.初始化MySQL
进入mysql的bin目录
cd /usr/local/mysql/bin/

进行初始化:
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize

查看初始化密码(记得保存密码):
vi /data/mysql/mysql.err
在这里插入图片描述
10.启动MySQL服务
service mysql start

11.进入数据库
mysql -uroot -p

建议更改密码
(1)mysqladmin -u root -p’旧密码’ password ‘新密码’
(2)alter user ‘root’@‘localhost’ identified by ‘123’;(保证密码永不过期)
flush privileges;(MySQL用户数据和权限有修改后,希望在"不重启MySQL服务"的情况下直接生效,那么就需要执行这个命令。

注意:
如果报错信息如下
A.service mysql启动失败 提示unit not found 解决办法

解决:
将找到的路径复制到 /etc/init.d/mysql路径中
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
然后重启

B.mysql command not found

解决:
第一种即可:增加软连接:ln -s /usr/local/mysql/bin/mysql /usr/bin
2. 找到mysql/bin的位置,正常情况下是 /usr/local/mysql/bin在最后添加:export PATH=$PATH:/usr/local/mysql/bin 保存退出。

额外—MySQL开机自启 (有待验证)
如果不想每次开机都去启动MySQL服务,那么就设置吧
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql 将服务文件拷贝到init.d下,并重命名为mysql
确保 /etc/init.d/ 目录下有mysql.server
赋予可执行权限 chmod +x /etc/init.d/mysql
添加服务 chkconfig --add mysql
显示服务列表 chkconfig --list 如果看到mysql的服务,并且3,4,5都是on的话则成功如果是off,则键入chkconfig --level 345 mysql on
reboot重启电脑
netstat -na | grep 3306,如果看到有监听说明服务启动了

注意:大版本内的升级小版本
只要把对应的版本包解压,tar 然后通过ln -s链接到老版本的地方
比如这个例子就是老版本在/usr/local/mysql ln -s 高版本解压出来的目录 /usr/local/mysql

一定要把老版本备份

如:mysql-5.7.23升级mysql-5.7.25
1.关闭数据库
pkill -9 mysql

/usr/loca/mysql/bin/mysqladmin -uroot -p密码- -S /tmp/mysql_3306.sock(根据实际路径修改) shutdown

2.上传mysql最新版本软件并解压。
cd /tmp/update
tar zxvf mysql-5.7.25-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.25-linux-glibc2.12-x86_64 /usr/local/
chown -R mysql.mysql mysql-5.7.25-linux-glibc2.12-x86_64

3.添加软连
cd /usr/local/
ln -s mysql-5.7.25-linux-glibc2.12-x86_64 mysql

4.切到新软件目录启动数据库

chown -R mysql:mysql ./*
./bin/mysqld_safe --defaults-file=/usr/local/mysql/etc/my.cnf & (指定配置文件启动)

5.登录测试
/usr/local/mysql/bin/mysql -uroot -p密码 -S /usr/local/mysql/mysql.sock

+++++++++++++++++++++++++++++++++++++++++
+++++++++++++++++++++++++++++++++++++++++

CentOS7中使用systemctl工具管理启动和停止MySQL
编辑如下文件:
1.vim /etc/systemd/system/mysqld.service

[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000

保存退出!

2,重新加载一下服务的配置文件
systemctl daemon-reload

3.启动mysql
systemctl start mysqld.service

注意:需要注意的地方(上方的配置文件中)
(1. --defaults-file=/etc/my.cnf 这个是指向mysql的配置文件,要根据实际情况来管理
2.如果一个服务器上启动多个mysql实例要怎么使用systemctl启动呢?
可以使用命名不同的方式来管理不同的实例,例如例子中使用的服务名是mysqld.service
可以写成mysql3306.service 和mysql3307.service 这样里面的配置文件也要指定相应的位置。否则启动容易出问题)

这篇关于Linux中使用tar包,指定路径安装MySQL(大版本相同)不同于编译的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!