MySql教程

Linux安装MySQL

本文主要是介绍Linux安装MySQL,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

文章目录

  • 一、下载指引
  • 二、远程连接(Mac用户)
  • 三、上传文件(Mac用户)
  • 四、安装及配置
  • 五、远程连接

一、下载指引

首先我们需要去官网下载一个MySQL压缩包,将其解压到我们想要安装的目录之下,下载地址为:https://dev.mysql.com/downloads/mysql
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果需要下载历史版本,可以在上图中的Archives中进行选择
在这里插入图片描述


二、远程连接(Mac用户)

之前在Linux安装JDK及Tomcat中,我们是使用的VMware的虚拟机来进行介绍的,其中借助了SecureCRT工具来完成远程连接服务器以及安装文件的上传功能,这次我们来使用阿里云服务器来进行介绍。


如果在Windows电脑环境下,我们依旧可以借助SecureCRT来进行远程连接服务器,并进行文件的上床;如果在Mac电脑的环境下,那么我们是可以直接来进行远程连接服务器,并进行上传文件的,如下:

ssh root@127.0.0.1		#127.0.0.1替换为远程服务器IP地址

在这里插入图片描述

在输入完密码后即可远程到远程服务器中,这里我们也可以通过Mac终端的Shell菜单中的新建远程连接来进行操作
在这里插入图片描述
在这里插入图片描述

这里如果我们新建了多个远程连接,那么在最下面的下拉框中就会看到多个历史记录,如果我们想清理其中的历史记录,那么可以执行下面的命令是否列出了你的所有远程连接历史记录

 defaults read /Users/用户名/Library/Preferences/com.apple.Terminal.plist PreviousCommands

如果是的话,可以运行下面的命令删除,然后退出终端,需要注意是退出而不是关闭所有窗口

defaults delete /Users/用户名/Library/Preferences/com.apple.Terminal.plist PreviousCommands

也可以使用open /User/...命令直接在访达中打开上述路径下的文件,进行编辑,删除其中部分不想要的历史记录,然后再进行保存退出终端重新打开即可



三、上传文件(Mac用户)

上面我们介绍了Mac电脑环境下如何远程连接服务器,那么在Mac电脑如何将文件上次至服务器,这里我们需要借助scp命令,如下:

scp /home/a.txt root@127.0.0.1:/usr/local/src		#将本机文件复制到远程服务器上
scp root@www.xxx.com[网址或IP地址]:/usr/src/a.txt /home/src		# 将远程服务器上的文件复制到本机

在这里插入图片描述


四、安装及配置

  1. 解压安装包
    在这里插入图片描述
    # .tar文件
    tar -xvf xxx.tar		#解压
    tar -cvf xxx			#压缩
    
    # .tar.xz文件
    xz -d xxx.tar.xz		#解压,解压之后是.tar文件
    xz -z xxx.tar			#压缩
    	
    # .tar.gz文件
    tar -zxvf xxx.tar.gz		#解压,解压之后是文件夹
    tar -zcvf xxx				#压缩
    
    
    -z		#使用gzip解压
    -x		#解压文档
    -c		#创建新文档,就是代表压缩的意思
    -v		#详细输出模式
    -f		#使用归档文件
    

  1. 移动并重命名
    在这里插入图片描述

  2. 创建用户和组
    在这里插入图片描述

  3. 将安装目录所有者及所属组改为mysql
    在这里插入图片描述

  4. 进入安装目录创建data文件夹,用于存放数据库表之类的数据
    在这里插入图片描述

  5. 配置my.cnf文件
    在这里插入图片描述
    my.cnf文件中,配置如下信息,输入:wq进行保存

    [client]
    port = 3306
    socket = /tmp/mysql.sock
    default-character-set = utf8mb4
    
    [mysqld]
    #设置mysql管理用户
    user=mysql
    #设置3306端口号
    port=3306
    #启动的socket文件
    socket=/tmp/mysql.sock
    #设置mysql的安装目录
    basedir=/usr/local/mysql
    #设置mysql数据库的数据存放目录
    datadir=/usr/local/mysql/data
    #错误日志文件路径
    log-error=/var/log/mysqld.log
    #pid文件路径
    pid-file=/var/run/mysqld/mysqld.pid
    #允许最大连接数
    max_connections=200
    #设置utf8mb4字符集
    character-set-server=utf8mb4
    character-set-client-handshake=FALSE
    collation-server=utf8mb4_unicode_ci
    init_connect='SET NAMES utf8mb4'
    #创建新表时将使用的默认存储引擎
    default-storage-engine=INNODB
    #设置数据库表名大小写,不可以动态修改,必须重启数据库。0-表名存储为给定的大小和比较是区分大小写的;1-表名存储在磁盘是小写的,但是比较的时候是不区分大小写;2-表名存储为给定的大小写但是比较的时候是小写的
    lower_case_table_names=1
    #mysql5.6.6弃用了explicit_defaults_for_timestamp这个系统变量,高于5.6.6时要设置此变量不然timestamp默认值会报错Invalid default value
    explicit_defaults_for_timestamp=true
    #mysql5.7对group by语法更严格了,只能select分组的字段和聚合函数,其他字段不允许出现在select列中,如果不想线上报错需要写此语句
    sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
    #Disabling symbolic-links is recommended to prevent assorted security risks
    symbolic-links=0
    

  1. 初始化数据库
    /usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize
    
    在这里插入图片描述
    然后根据上述的错误提示信息,我们需要新建一个日志文件,并更改其目录权限,然后再重新执行上述命令即可
    cd /var/log/
    
    vim mysqld.log
    :wq
    
    chown mysql:mysql mysqld.log
    
    PS: 如果在初始化数据库过程中发生相关依赖错误,可尝试执行yum install libaio命令来安装相关依赖包

  1. 查看初始密码
    初始化成功后,从上述的my.cnf配置文件中配置的log-error路径即可查看到初始化密码
    在这里插入图片描述

  2. 启动mysql服务
    为了能使用service mysqld start命令启动mysql服务,此时需要做的是将mysql.server的脚本复制到/etc/init.d目录下,然后重命名为mysqld

    cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
    

    如mysql没有执行权限,则需添加mysqld服务到系统,执行chmod +x /etc/init.d/mysql即可


    最后添加mysql服务,如下:
    在这里插入图片描述
    上述看到mysql的服务,并且3、4、5都是"开"的状态,如果是状态为"关",则可执行chkconfig --level 345 mysql on


    最后执行service mysql start启动mysql服务
    在这里插入图片描述
    然后我们又发现上述的错误提示,这里其实和我们在第7步初始化数据库报错的原因一致,因为我们在mysql.cnf配置的pid文件目录mysql用户没有权限的原因,这里我们在新建mysqld.pid文件,并修改其目录权限

    cd /var/run/
    mkdir mysqld
    
    chown -R mysql:mysql mysqld/ 
    

    这里如何觉得太过于繁琐的话,可以在my.cnflog-errorpid-file文件路径配置在/usr/local/mysql/data下,因为我们在创建mysql用户时,就直接修改过/usr/local/mysql目录的权限,这样的话本步及第7步就都不会报错了。
    在这里插入图片描述

    #启动
    service mysqld start
    #停止
    service mysqld stop
    #重启
    service mysqld restart
    

  1. 配置全局环境变量
    在这里插入图片描述
    执行vim /etc/profile修改配置环境,如上添加mysql配置,esc退出后:wq保存,最后执行source /etc/profile即可,配置完成后就解决了必须切换至安装目录下才能执行命令的问题了。

  1. 更改root密码
    首先需要使用上述得到的初始密码来登录mysql
    在这里插入图片描述
    在MySQL8.04前,可以执行如下命令进行修改密码
    set password = password('新密码');
    alter user 'root'@'localhost' password expire never;
    flush privileges;
    
    但是MySQL8.0.4开始,这样默认是不行的。因为之前,MySQL的密码认证插件是“mysql_native_password”,而现在使用的是“caching_sha2_password”。所以需要使用以下的方法去修改root密码
    alter user 'root'@'localhost' identified with mysql_native_password by '新密码';
    FLUSH PRIVILEGES;
    

五、远程连接

在上述安装完成之后,我们在本地使用Navicat进行测试连接时,这时可能会发生如下错误
在这里插入图片描述
在这里插入图片描述

因为这里使用的是阿里云服务器,首先需要确认的是3306端口是不是对外开放了,其默认状态是不开放对外访问的,所以首先需要配置阿里云服务器的安全组规则
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


如果这里你使用的是VMware虚拟机的话,那么可以使用firewall-cmd --list-ports命令来检查一下3306端口是否开放

若无的话,可执行firewall-cmd --zone=public --add-port=3306/tcp --permanent开启3306端口号,开启后重启防火墙firewall-cmd --reload即可



3306端口开放后再进行尝试连接测试库,可能又会发现如下错误
在这里插入图片描述
这里需要在服务器上先执行mysql -uroot -p登录mysql,然后执行下面命令即可

#访问mysql库
use mysql
#使root能再任何host访问
update user set host = '%' where user = 'root';
#刷新
flush privileges;

在这里插入图片描述

这篇关于Linux安装MySQL的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!