Linux上安装Mysql

Linux上安装MysqlLinux上安装MysqlLinux上安装MysqlLinux上安装软件常见的几种方式:使用yum进行安装修改密码及登录设置编码设置开机启动Linux上安装MysqlLinux上安装软件常见的几种方式:源码编译压缩包解压(一般为tar.gz)编译好的安装包(RPM、DPKG等)在线安装(YUM、APT等)以上几种方式便捷性依次增加,但通用性依次下降,比如直接下载压缩包进行解压,这种方式一般需要自己做一些额外的配置工作,但只要掌握了方法,各个平台基本都适用,YUM虽然简单,但是平台受限,网络

大家好,又见面了,我是你们的朋友全栈君。

Linux上安装Mysql

Linux上安装软件常见的几种方式:

  • 源码编译
  • 压缩包解压(一般为tar.gz)
  • 编译好的安装包(RPM、DPKG等)
  • 在线安装(YUM、APT等)

以上几种方式便捷性依次增加,但通用性依次下降,比如直接下载压缩包进行解压,这种方式一般需要自己做一些额外的配置工作,但只要掌握了方法,各个平台基本都适用,YUM虽然简单,但是平台受限,网络受限,必要的时候还需要增加一些特定YUM源。
几种安装方式最好都能掌握,原则上能用简单的就用简单的:YUM>RPM>tar.gz>源码

使用yum进行安装

  1. 查看是否已经安装了mysql
[root@localhost ~]# rpm -qa|grep mysql #无输出说明没有安装
  1. 打开网址:MySQL Yum存储库
  2. 找到对应linux的版本进行下载
    查看自己的版本:
[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.8.2003 (Core)

在这里插入图片描述
3. 点击如下图红框所示
在这里插入图片描述
4. 复制下载文件的全名:mysql80-community-release-el7-3.noarch.rpm
在这里插入图片描述
5. 下载和安装mysql源

[root@localhost ~]# wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm

在这里插入图片描述
如果显示wget未找到命令,则需要先安装wget:

yum -y install wget

然后再次执行上面命令

  1. 安装mysql源
[root@localhost ~]# sudo rpm -Uvh mysql80-community-release-el7-3.noarch.rpm

在这里插入图片描述
检查是否安装成功:
执行成功后会在/etc/yum.repos.d/目录下生成两个repo文件mysql-community.repo及 mysql-community-source.repo

[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls -l
总用量 12
-rw-r--r--. 1 root root 2523 6月  16 2018 CentOS-Base.repo
-rw-r--r--. 1 root root 2076 4月  25 2019 mysql-community.repo
-rw-r--r--. 1 root root 2108 4月  25 2019 mysql-community-source.repo
[root@localhost yum.repos.d]# 

查看mysql相关资源

yum repolist enabled | grep "mysql.*-community.*"

在这里插入图片描述

  1. 选择masql版本
    使用MySQL Yum Repository安装MySQL,默认会选择当前最新的稳定版本
  • 使用命令:yum repolist all | grep mysql,查看当前yum repolist的所有版本
  • 切换版本
[root@localhost ~] sudo yum-config-manager --disable mysql80-community
[root@localhost ~] sudo yum-config-manager --enable mysql57-community
  1. 安装mysql
[root@localhost ~]# sudo yum install mysql-community-server

该命令会安装MySQL服务器 (mysql-community-server) 及其所需的依赖、相关组件,包括mysql-community-client、mysql-community-common、mysql-community-libs等。安装时间会比较长

  1. 启动
[root@localhost ~]# systemctl start mysqld.service
[root@localhost ~]# systemctl status mysqld.service

在这里插入图片描述
启动成功

  1. 停止
[root@localhost ~]# systemctl stop mysqld.service
  1. 重启
[root@localhost ~]# systemctl restart mysqld.service

修改密码及登录

初始密码
MySQL第一次启动后会创建超级管理员账号root@localhost,初始密码存储在日志文件中:

[root@localhost ~]# grep 'temporary password' /var/log/mysqld.log
2020-12-06T07:32:41.399112Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: Nd<-p!Fxt6A8

修改默认密码

# 先进行登录
[root@localhost ~]# mysql -uroot -p
Enter password: 
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'password';
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements 
#密码太弱

解决方法如下:

  • 使用复杂密码,MySQL默认的密码策略是要包含数字、字母及特殊字符;
  • 如果只是测试用,不想用那么复杂的密码,可以修改默认策略,即validate_password_policy(以及validate_password_length等相关参数),使其支持简单密码的设定,具体方法可以参考:设置密码策略
  • 修改配置文件/etc/my.cnf,添加validate_password=OFF,保存并重启MySQL
  • 修改报错后重启报错解决可参考:https://blog.csdn.net/aiyowei1106/article/details/88703746

设置编码

  1. 查看编码
mysql> SHOW VARIABLES LIKE 'character%';
  1. 设置编码
    编辑/etc/my.cnf,[mysqld]节点增加以下代码
[mysqld]
character_set_server=utf8
init-connect='SET NAMES utf8'

设置开机启动

[root@localhost ~]# systemctl enable mysqld
[root@localhost ~]# systemctl daemon-reload

关闭防火墙

允许远程登录

	# firewall防火墙
	systemctl status firewalld
	# 查看转态
	firewall-cmd --state
	# 开启
	service firewalld start
	# 重启
	service firewalld restart
	# 关闭
	service firewalld stop
	#注意分清楚linux的版本 命令会有所不同
	#查看防火墙规则
	firewall-cmd --list-all 

删除mysql

  1. 检查mariadb
[root@localhost ~]# rpm -qa|grep mariadb

如无则跳过下面一条

  1. 删除mariadb
[root@localhost ~]# rpm -e --nodeps mariadb-server
[root@localhost ~]# rpm -e --nodeps mariadb
[root@localhost ~]# rpm -e --nodeps mariadb-libs
  1. 检查mysql
[root@localhost ~]# rpm -qa|grep mysql
mysql-community-client-8.0.22-1.el7.x86_64
mysql-community-common-8.0.22-1.el7.x86_64
mysql-community-client-plugins-8.0.22-1.el7.x86_64
mysql-community-libs-compat-8.0.22-1.el7.x86_64
mysql80-community-release-el7-3.noarch
mysql-community-libs-8.0.22-1.el7.x86_64
mysql-community-server-8.0.22-1.el7.x86_64
[root@localhost ~]# 
  1. 删除mysql
[root@localhost ~]# rpm -e --nodeps xxx

在这里插入图片描述

使用tar.xz安装

1.删除旧的,操作如上
2.下载mysql对应安装包
官网下载:历史版本下载
下载好后通过xftp上传至虚拟机
在这里插入图片描述

或者直接在虚拟机上使用命令进行下载:

[root@localhost ~]# wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.15-linux-glibc2.12-i686.tar

3.安装和配置
MySQL依赖libaio库

[root@localhost ~]# yum install libaio

4.创建mysql用户
不需要登录的一个系统账号,启动MySQL服务时会使用该账号

[root@localhost mysql]# groupadd mysql
[root@localhost mysql]# useradd -r -g mysql -s /bin/false mysql

5.解压并创建链接

[root@localhost mysql]# tar zxvf /root/mysql/mysql-8.0.15-linux-glibc2.12-i686.tar.gz
或者
[root@localhost mysql]# tar -xvf /root/mysql/mysql-8.0.15-linux-glibc2.12-i686.tar
或者
[root@localhost mysql]# tar -xvJf /root/mysql/mysql-8.0.15-linux-glibc2.12-i686.tar.xz
修改文件名
[root@localhost mysql]# mv mysql-8.0.15-linux-glibc2.12-i686 mysql 
将文件移动到/usr/local/
[root@localhost mysql]# cp mysql-8.0.15-linux-glibc2.12-i686.tar.xz /usr/local/

6.修改/usr/local/mysql 目录为mysql用户

cd /usr/local/mysql //进入/usr/local/mysql 目录

[root@localhost mysql]# cd /usr/local/mysql //进入/usr/local/mysql 目录
[root@localhost mysql]# chown -R mysql:mysql ./

7.mysql初始化操作

[root@localhost mysql]# ./bin/mysqld  --initialize  --user=mysql  --basedir=/usr/local/mysql  --datadir=/usr/local/mysql/data
./bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
# 初始化报错,请执行以下命令,查看是否安装齐全
yum search libaio
yum install libaio
yum -y install numactl
yum install libnuma
yum install ld-linux.so.2
yum install libaio.so.1
yum install libnuma.so.1
yum install libstdc++.so.6
yum install libtinfo.so.5

在这里插入图片描述
8.启动服务

[root@localhost mysql]# cd support-files
[root@localhost support-files]# ./mysql.server start
Starting MySQL.Logging to '/usr/local/mysql/data/localhost.localdomain.err'.
.. SUCCESS! 

success表示已经启动成功

9.配置mysql环境

[root@localhost ~]# vi /etc/profile

xport MYSQL_HOME=/usr/local/mysql
export MYSQL_PATH=${MYSQL_HOME}/bin:${MYSQL_HOME}/lib
export PATH=$PATH:/usr/local/mysql/bin

在这里插入图片描述
shutdown -r now 重启下服务器或者 source /etc/profile 均可使环境变量生效

10.系统配置

cp /usr/local/mysql/support-files/mysql.server   /etc/init.d/mysql   //拷贝mysql.server 
 
chmod +x  /etc/init.d/mysql           //添加可执行权限。
 
chkconfig  --add mysql               // 注册启动服务
chkconfig  --list   //查看是否添加成功

在这里插入图片描述
至此mysql就安装成功了

11.修改初始密码

[root@localhost ~]# mysql -uroot -p
Enter password:        //这里输入刚刚初始化操作时的初始密码

mysql> alter user 'root'@'localhost' identified by '你的新密码';
Query OK, 0 rows affected (0.02 sec)
#设置允许远程登录
mysql> update user set user.Host='%' where user.User='root';

在这里插入图片描述
12.关闭防火墙
允许远程登录

	# firewall防火墙
	systemctl status firewalld
	# 查看转态
	firewall-cmd --state
	# 开启
	service firewalld start
	# 重启
	service firewalld restart
	# 关闭
	service firewalld stop
	#注意分清楚linux的版本 命令会有所不同
	#查看防火墙规则
	firewall-cmd --list-all 

远程连接

远程连接时报错
在这里插入图片描述
原因

mysql8 之前的版本中加密规则是mysql_native_password,而在mysql8之后,加密规则是caching_sha2_password

解决

#更改加密方式
mysql> ALTER USER 'root'@'%' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVEER;
Query OK, 0 rows affected (0.01 sec)
#更新用户密码
mysql> ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
Query OK, 0 rows affected (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/132422.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 报错注入详解_报错注入的过程

    报错注入详解_报错注入的过程报错注入报错注入是SQL注入的一种。利用前提:页面上没有显示位,但是需要输出SQL语句执行错误信息。比如mysql_error()优点:不需要显示位缺点:需要输出mysql_error()的报错信息报错函数1、floor报错注入floor()报错注入是利用count()、rand()、floor()、groupby这几个特定的函数结合在一起产生的注入漏洞,准确的说是floor,count,groupby冲突报错。报错原理:利用数据库表主键不能重复的原理,使用GROUPBY分组,产生主

    2022年9月30日
    3
  • Qemu之Network Device全虚拟方案二:虚拟网卡的创建

    Qemu之Network Device全虚拟方案二:虚拟网卡的创建

    2022年1月28日
    41
  • HUNNU Contest 区间最值

    HUNNU Contest 区间最值

    2022年1月1日
    53
  • TypeError: ‘Collection‘ object is not callable. If you meant to call the ‘insert‘ method on a ‘Datab

    TypeError: ‘Collection‘ object is not callable. If you meant to call the ‘insert‘ method on a ‘DatabfrompymongoimportMongoClient报错问题描述解决方法问题描述使用pymongo连接本地的MongoDB,跟个老师的视频,出现报错,后查询资料改正frompymongoimportMongoClient#创建数据库连接对象client=MongoClient()#选择一个数据库db=client[‘python’]#身份认证#db.authenticate(‘python’,’python’)#选择一个集合col=c

    2022年7月16日
    28
  • Vim 3 vimrc[通俗易懂]

    Vim 3 vimrc[通俗易懂]文章目录什么是vimrc基本修改UI相关配置编码相关配置文件相关配置编辑器相关配置按键映射“键我的vimrc小结什么是vimrcvimrc是Vim的配置文件,Vim在启动时会加载vimrc文件,你能想到的几乎所有的配置(包括主题,快捷键,插件设置等等),都可以配置在vimrc中,所以,vimrc在Vim使用过程中有着至关重要的地位.Vim是极…

    2022年5月18日
    46
  • 编译Android 4.4.4 r1的源码刷Nexus 5手机详细教程

    编译Android 4.4.4 r1的源码刷Nexus 5手机详细教程网上关于编译Android源码的教程已经很多了,但是讲怎么编译Android源码刷到真机上的教程不是很多并且也没有讲清楚,仅仅编译Android源码不部署到真机上折腾一下是不愉快的。在Android安全学习的过程不免涉及到修改Android源码过各种对抗的事情,今天有空来学习一下如何编译Android源码部署到谷歌的Nexus5手机上,以Android4.4.4r1的源码为例子,在Ubun

    2022年5月24日
    31

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号