Linux安装MySQL
2021/7/26 2:05:58
本文主要是介绍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 # 将远程服务器上的文件复制到本机
四、安装及配置
- 解压安装包
# .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 #使用归档文件
-
移动并重命名
-
创建用户和组
-
将安装目录所有者及所属组改为mysql
-
进入安装目录创建data文件夹,用于存放数据库表之类的数据
-
配置
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
- 初始化数据库
/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
命令来安装相关依赖包
-
查看初始密码
初始化成功后,从上述的my.cnf
配置文件中配置的log-error路径即可查看到初始化密码
-
启动mysql服务
为了能使用service mysqld start
命令启动mysql服务,此时需要做的是将mysql.server
的脚本复制到/etc/init.d
目录下,然后重命名为mysqldcp /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.cnf
将log-error
及pid-file
文件路径配置在/usr/local/mysql/data
下,因为我们在创建mysql用户时,就直接修改过/usr/local/mysql
目录的权限,这样的话本步及第7步就都不会报错了。
#启动 service mysqld start #停止 service mysqld stop #重启 service mysqld restart
- 配置全局环境变量
执行vim /etc/profile
修改配置环境,如上添加mysql配置,esc退出后:wq
保存,最后执行source /etc/profile
即可,配置完成后就解决了必须切换至安装目录下才能执行命令的问题了。
- 更改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的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-16MySQL资料:新手入门教程
- 2024-11-16MySQL资料:新手入门教程
- 2024-11-15MySQL教程:初学者必备的MySQL数据库入门指南
- 2024-11-15MySQL教程:初学者必看的MySQL入门指南
- 2024-11-04部署MySQL集群项目实战:新手入门教程
- 2024-11-04如何部署MySQL集群资料:新手入门指南
- 2024-11-02MySQL集群项目实战:新手入门指南
- 2024-11-02初学者指南:部署MySQL集群资料
- 2024-11-01部署MySQL集群教程:新手入门指南
- 2024-11-01如何部署MySQL集群:新手入门教程