搭建Linux项目环境(四)-安装MYSQL

方式一:APT在线安装

1、下载MYSQL的APT资源包【mysql-apt-config_0.8.10-1_all.deb】,如下:

在这里插入图片描述
在这里插入图片描述

2、把mysql-apt-config_0.8.10-1_all.deb上传到Linux的/tmp/目录

在这里插入图片描述

3、执行命令sudo dpkg -i /tmp/mysql-apt-config_0.8.10-1_all.deb安装deb,下图选mysql 8.0,按提示选OK回车继续

在这里插入图片描述

4、使用sudo apt-get update更新软件包列表

在这里插入图片描述

5、使用sudo apt-get install mysql-server安装MYSQL 8【网络要好】

在这里插入图片描述

  • 5.1、一段时间后,输入root密码,然后选OK,再重复输入密码。

在这里插入图片描述

  • 5.2、选择密码加密算法,默认选mysql8。然后回车

在这里插入图片描述

  • 5.3、继续安装,几分钟后,安装完成

在这里插入图片描述

  • 5.4、安装完成后使用whereis mysql找到mysql的位置,如下

在这里插入图片描述

6、修改Mysql的字符集,打开/etc/mysql/my.cnf的文件,加入以下内容并保存

[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
[mysqld_safe]
default-character-set = utf8
[mysql.server]
default-character-set = utf8
[client]
default-character-set = utf8

7、使用命令service mysql restart重启mysql服务,然后使用命令mysql -u用户名 -p密码,登录mysql,使用show variables like 'character%';查看mysql字符集

在这里插入图片描述

8、MYSQL安装完毕,测试

#服务启动后端口查询
sudo netstat -anp | grep mysql

#服务管理
#启动
sudo service mysql start

#停止
sudo service mysql stop

#服务状态
sudo service mysql status

#连接数据库(-h为远程IP,-P为端口号,-u为用户名,-p为密码)
mysql -h 127.0.0.1 -P 3306 -uroot -pmysql

#测试SQL
show databases;

在这里插入图片描述

9、MYSQL远程访问设置

如果没有设置远程访问的话,远程连接会报Access denied for user 'root'@'huangqh-PC.mshome.net' (using password: YES)错误。
MySQL8默认的认证插件是caching_sha2_password,很多客户端都不支持,可将默认的认证插件修改为mysql_native_password,在配置文件中配置default_authentication_plugin=mysql_native_password
  • 9.1、设置MySQL服务允许外网访问,修改/etc/mysql/my.cnf,加入以下内容,然后重启mysql服务
[mysqld] 
port=3306 
bind-address=0.0.0.0 
  • 9.2、设置mysql用户支持外网访问,需要使用root权限登录mysql,更新mysql.user表,设置指定用户的Host字段为%,默认一般为127.0.0.1或者localhost,【host字段说明】% 允许从任何ip登录,x.x.x.x 允许从指定ip访问,步骤如下:

1、使用root用户登录mysql,命令mysql -uroot -pmysql
2、切换数据库为mysql,命令use mysql;
3、查询host,SQL:select user,host from user;
4、更新host,SQL:update user set host='%' where user='root'; flush privileges;
5、授权用户:SQL:alter user 'root'@'%' identified with mysql_native_password by 'mysql';flush privileges;

10、MYSQL创建用户,账户管理官方文档

#创建账号、分配权限
CREATE USER 'hqh'@'%' IDENTIFIED BY 'Mysql123';
GRANT ALL PRIVILEGES ON *.* TO 'hqh'@'%' WITH GRANT OPTION;
 
#显示账号及权限相关信息
SHOW GRANTS FOR 'hqh'@'%';
SHOW CREATE USER 'hqh'@'%';

#创建数据库
create database mybatis;

#修改用户密码,password为要修改的密码,如下修改root的密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

11、MYSQL卸载

#首先使用以下命令删除MySQL服务器:
sudo apt-get remove mysql-server

#然后,删除随MySQL服务器自动安装的任何其他软件:
sudo apt-get autoremove
sudo apt-get --yes autoremove --purge mysql-server

#卸载其他组件:
sudo apt-get remove <<package-name>>

#查看从MySQL APT存储库安装的软件包列表:
dpkg -l | grep mysql | grep ii

12、其它

#访问mysql 慢,修改/etc/mysql/mysql.conf.d/mysqld.cnf 
[mysqld]
skip-name-resolve

#mysql 表名大小写敏感
[mysqld]
lower_case_table_names=0

13、可以使用命令sudo systemctl disable mysql禁止mysql开机启动,使用sudo systemctl enable mysql设置开机启动,这仅限于以APT源和deb文件安装的版本。

14、开启慢SQL日志

# 重点说明:开启慢日志版本要高,低版本无法支持,本次版本是:8.0.18
# 查询版本号
SELECT VERSION();

# 连接数据库(-h为远程IP,-P为端口号,-u为用户名,-p为密码)
mysql -h 127.0.0.1 -P 3306 -uroot -pmysql

# 查看slow_query_log配置
mysql> show variables like 'slow_query%';
+---------------------+----------------------------------+
| Variable_name       | Value                            |
+---------------------+----------------------------------+
| slow_query_log      | OFF                              |
| slow_query_log_file | /var/lib/mysql/server-4-slow.log |
+---------------------+----------------------------------+
2 rows in set (0.00 sec)

# 默认查询超过10秒才记录
mysql> show variables like 'long_query_time';
+-----------------+-----------+
| Variable_name   | Value     |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
1 row in set (0.00 sec)

# 设置慢查询日志
方法一:全局变量设置(该方式数据库重启全部失效,得重新配置)
mysql> set global slow_query_log='ON';
mysql> set global slow_query_log_file='/data/mysql/slow.log';

# 设置查询超过1秒就记录(如果有时候用命令不起作用,那么可以关闭再打开)
mysql> set global long_query_time=1;

方法二:配置文件设置(服务器重启不影响),修改配置文件my.cnf,在[mysqld]下的下方加入
[mysqld]
slow_query_log = ON
slow_query_log_file = /data/mysql/slow.log
long_query_time = 1

# 重启
service mysqld restart

# 再次查询慢SQL配置,如果一直是OFF,证明log_file路径无写权限,可通过以下设置测试
mysql> set global slow_query_log='ON';
ERROR 29 (HY000): File '/data/logs/mysql/slow.log' not found (OS errno 13 - Permission denied)

# 如果报错为ERROR 29 (HY000),则mysqld强制编码了,文件没有写入权限,
# 可通过修改/etc/apparmor.d/usr.sbin.mysqld文件,在底部加入以下配置即可
# slow.log
 /data/logs/mysql/ r,
 /data/logs/mysql/** rw,

慢SQL测试

# 执行SQL
mysql> select sleep(3);
# 查看是否生成慢查询日志,在上面的路径/data/logs/mysql会生成一个slow.log文件,内容如下
/usr/sbin/mysqld, Version: 8.0.18 (MySQL Community Server - GPL). started with:
Tcp port: 3306  Unix socket: /var/run/mysqld/mysqld.sock
Time                 Id Command    Argument
# Time: 2021-04-01T06:46:58.792380Z
# User@Host: root[root] @ localhost []  Id:     8
# Query_time: 3.001160  Lock_time: 0.000000 Rows_sent: 1  Rows_examined: 1
SET timestamp=1617259615;
select sleep(3);

方式二:离线安装

1、下载离线安装包,mysql-server_8.0.17-1ubuntu16.04_amd64.deb-bundle.tar

在这里插入图片描述

2、上传mysql-server_8.0.17-1ubuntu16.04_amd64.deb-bundle.tar到服务器的opt目录,然后使用以下命令解压

mkdir -p /opt/mysql_deb
tar -xf /opt/mysql-server_8.0.17-1ubuntu16.04_amd64.deb-bundle.tar -C /opt/mysql_deb

得到以下安装包
在这里插入图片描述
按顺序执行以下命令安装即可,依赖包可以在以下位置下载ubuntu.pkgs.org

sudo apt-get install libmecab2 libaio1
sudo dpkg -i mysql-community-client-core_8.0.17-1ubuntu16.04_amd64.deb
sudo dpkg -i mysql-common_8.0.17-1ubuntu16.04_amd64.deb
sudo dpkg -i mysql-community-client_8.0.17-1ubuntu16.04_amd64.deb
sudo dpkg -i libmysqlclient21_8.0.17-1ubuntu16.04_amd64.deb
sudo dpkg -i libmysqlclient-dev_8.0.17-1ubuntu16.04_amd64.deb
sudo dpkg -i mysql-client_8.0.17-1ubuntu16.04_amd64.deb
sudo dpkg -i mysql-community-server-core_8.0.17-1ubuntu16.04_amd64.deb
sudo dpkg -i mysql-community-server_8.0.17-1ubuntu16.04_amd64.deb
sudo dpkg -i mysql-community-server-debug_8.0.17-1ubuntu16.04_amd64.deb
sudo dpkg -i mysql-server_8.0.17-1ubuntu16.04_amd64.deb

Mysql server安装过程中会提示输入root用户密码,待所有安装完成后,使用命令登陆即可

使用命令ps -ef|grep mysql查看mysql是否启动,如下为已启动,如果未启动则用service mysql start启动
在这里插入图片描述
使用mysql -uroot -proot登录mysql
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值