linux下安装mysql
Linux下安装MySQL
概述
简单介绍MySQL是什么,运用场景。在Linux操作系统(默认64位)下安装MySQL需要注意的点,以及通过navicate 16连接本地MySQL实现图形化操作。
注意:需要root权限,或者您能正常使用sudo提权。
MySQL简介
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle旗下产品。MySQL是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的RDBMS (Relational Database Management System,关系数据库管理系统)应用软件之一。
MySQL是一种关系型数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型和大型网站的开发都选择 MySQL作为网站数据库。[1]
一、下载MySQL
首先需要登陆到MySQL官网,选择“下载"->"MySQL Community (GPL) Downloads »"->"MySQL Community Server"。
您将会得到如下类似界面:
如果您未找到,也可以点击:MySQL Community Server进入该界面。
-
进入下载界面后,选择Archives获取以往版本,最新版本您可能获取不了与之对应MySQL的包(例如:JDBC的jar包)
-
默认选择第一项:
当然,如果您也可以自行选择合适版本。
-
下载完成,您应该能找到对应的tar.xz压缩包。例如我下载得到的:
$ cd Downloads/ $ ls mysql-8.1.0-linux-glibc2.28-x86_64.tar.xz
如果您能够正确的找到tar.xz压缩包,那么安装MySQL的第一步就完成了😆,是不是很轻松呢!
二、安装MySQL
在MySQL 8.0以后,其默认您安装的位置在/usr/local目录下,如果您安装在其他目录下,MySQL服务会无法启动,需要自行修改配置文件。为了方便您的安装,所以笔者选择安装在/usr/local目录下。
1. 解压并移动
-
解压MySQL的tar.xz压缩包:
$ tar -xvf mysql-8.1.0-linux-glibc2.28-x86_64.tar.xz # 解压tar.xz文件,该tar.xz文件为笔者自己下载的文件,以您自己情况修改命令 $ ls mysql-8.1.0-linux-glibc2.28-x86_64/ mysql-8.1.0-linux-glibc2.28-x86_64.tar.xz
可以看到已经成功解压文件,得到
mysql-8.1.0-linux-glibc2.28-x86_64/
目录。 -
移动目录
- 由于MySQL压缩包解压目录名太长(不方便后续配置),所以我们重命名为
mysql
$ mv mysql-8.1.0-linux-glibc2.28-x86_64 mysql $ ls mysql/ mysql-8.1.0-linux-glibc2.28-x86_64.tar.xz
- 拷贝至/usr/local目录下,注意:这里需要root权限
$ sudo cp mysql/ /usr/local/ -r $ cd /usr/local/ $ ls bin etc games include lib man mysql sbin share src
从ls命令下,我们可以看到/usr/local目录下已经成功存在mysql目录。
- 由于MySQL压缩包解压目录名太长(不方便后续配置),所以我们重命名为
您已经成功完成三分之一的步骤,是不是很容易!
2. 配置并本地化MySQL
-
配置mysql组和成员
$ sudo groupadd mysql $ sudo useradd -g mysql mysql $ sudo chown -R mysql:mysql /usr/local/mysql/
-
配置基础MySQL配置文件
$ sudo vi /etc/my.cnf
通过vi编辑MySQL配置文件,默认/etc目录下并不存在my.cnf文件。
使用'ctrl+shift+v'快捷键粘贴以下内容到my.cnf文件中:
[mysqld] basedir = /usr/local/mysql datadir = /usr/local/mysql/data socket = /usr/local/mysql/mysql.sock character-set-server=utf8 port = 3308 [client] socket = /usr/local/mysql/mysql.sock default-character-set=utf8
输入
Esc
退出vi的编辑模式,再输入:x
保存退出文件。上述内容主要配置一下几点:
-
设置MySQL服务器与客户端
-
设置MySQL服务端的路径、套接字、字符集、端口(注意:MySQL默认端口为3306,笔者有其他需求,所以修改为3308)。
-
设置MySQL客户端的套接字、默认字符集。
-
-
本地化MySQL
$ pwd /usr/local/mysql # 确定自己目前在mysql目录下 $ cd bin/ $ sudo ./mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize
上述命令主要有几点:1. 设置MySQL的用户为mysql,2. 设置mysql的本地根路径
basedir
,设置MySQL的本地数据路径datadir
,3. 初始化。如果您之前配置与笔者一致,那么便不需要修改。如果您自定义安装MySQL,那么请根据实际情况进行调整
如果没有错误的话,您应该会得到如下类似输出:
其中红色框内为MySQL自动生成的随即密码,在下面的步骤中会用到。请务必保留。
-
启动MySQL
$ cd /usr/local/mysql/ # 回到mysql目录下 $ ls -al 总计 324 drwxr-xr-x 10 mysql mysql 4096 11月12日 16:52 ./ drwxr-xr-x 11 root root 4096 11月12日 15:49 ../ drwxr-xr-x 2 mysql mysql 4096 11月12日 15:49 bin/ drwxr-x--- 7 mysql mysql 4096 11月12日 16:52 data/ drwxr-xr-x 2 mysql mysql 4096 11月12日 15:49 docs/ drwxr-xr-x 3 mysql mysql 4096 11月12日 15:49 include/ drwxr-xr-x 6 mysql mysql 4096 11月12日 15:49 lib/ -rw-r--r-- 1 mysql mysql 279863 11月12日 15:49 LICENSE drwxr-xr-x 4 mysql mysql 4096 11月12日 15:49 man/ srwxrwxrwx 1 mysql mysql 0 11月12日 15:54 mysql.sock= -rw------- 1 mysql mysql 6 11月12日 15:54 mysql.sock.lock -rw-r--r-- 1 mysql mysql 666 11月12日 15:49 README drwxr-xr-x 28 mysql mysql 4096 11月12日 15:49 share/ drwxr-xr-x 2 mysql mysql 4096 11月12日 15:49 support-files/
如果没有意外,您应该能够得到如上的mysql目录内文件,其中
data
目录用于保存您使用MySQL的数据,例如库数据;support-files
用于保存MySQL服务程序;bin
目录下则存在有MySQL启用程序。进入
support-files
目录下,启动MySQL服务:$ pwd # 确定位置 /usr/local/mysql $ cd support-files/ # 进入 $ ls mysqld_multi.server* mysql-log-rotate mysql.server* $ sudo ./mysql.server start Starting MySQL .Logging to '/usr/local/mysql/data/aaron-PC.err'. .
初次启用会配置日志信息,这个我们无需在意。只要没有报错,那么我们便成功启用MySQL服务。
启动MySQL:
$ cd ../bin/ $ ls ibd2sdi* my_print_defaults* mysqld* mysql_migrate_keyring* mysql_upgrade* innochecksum* mysql* mysqld-debug* mysqlpump* perror* lz4_decompress* mysqladmin* mysqld_multi* mysql_secure_installation* zlib_decompress* myisamchk* mysqlbinlog* mysqld_safe* mysqlshow* myisam_ftdump* mysqlcheck* mysqldump* mysqlslap* myisamlog* mysql_config* mysqldumpslow* mysql_ssl_rsa_setup* myisampack* mysql_config_editor* mysqlimport* mysql_tzinfo_to_sql*
您会看到一大堆程序,我们只需要关系
mysql
程序即可。$ ./mysql -u root -p
输入在步骤3得到的密码,那么您应该能够进入MySQL:
如果万事大吉的话,可以说您已经安装完成MySQL了,接下来的只不过是锦上添花。
安装MySQL是不是很简单😉!
三、优化
1. 添加环境变量
如果希望能够快速启动mysql,那么您可以尝试将mysql和mysql.server添加入shell配置文件中。【由于笔者的shell为fish,那么笔者将按照fish习惯进行编写。您可以自行查找您的shell对应的配置习惯】
$ vi ~/.config/fish/config.fish # 进入fish配置文件
set -x PATH /usr/local/mysql/bin/ $PATH # 设置在fish SHELL中MySQL的环境变量
如果您是zsh
或者bash
的SHELL环境,您可以通过加入下面的环境变量:
export PATH=$PATH:/usr/local/mysql/bin/
由于每次启动MySQL都需要启动MySQL服务,但是笔者不希望该服务开机自启动,于是便配置了两个fish SHELL下的函数来支持:
function web_on
cd /usr/local/mysql/support-files/ && sudo ./mysql.server start
echo -e "mysql服务已启动"
end
function web_off
cd /usr/local/mysql/support-files/ && sudo ./mysql.server stop
echo -e "mysql服务已关闭"
end
这样,笔者便可以通过web_on
和web_off
来控制MySQL服务的启用与停止。
2. 修改密码
MySQL自动生成的密码不容易记忆,如果您想要修改密码,可以进行如下操作:
$ mysql -u root -p # 进入MySQL
如果您无法进入,且之前的步骤都能够顺序进入,那么考虑您的密码是否输入正确或者您的计算机是否启用mysql服务。
得到如下输出:
修改密码:
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
上述命令的作用便是直接修改本地用户的信息,使得密码被修改为123456
。
3. 使用navicat
navicat是一个数据库管理和设计工具,您可以通过图形化界面操纵数据。
在概述阶段,我们就已经提到navicat,您可以通过点击链接下载它。
如果成功安装,您应该会得到如下界面:
点击连接
->MySQL
创建新连接,如下:
需要注意的是,navicat默认主机地址为:localhost,您需要修改为
127.0.0.1
,否则可能连接出错。
如果一切顺利,那么便可以在navicat上操纵MySQL: