前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux 安装配置 mysql

Linux 安装配置 mysql

作者头像
为为为什么
发布2022-08-06 16:10:33
1.6K0
发布2022-08-06 16:10:33
举报
文章被收录于专栏:又见苍岚又见苍岚

本文记录 Linux 下mysql 的安装配置过程。

Mysql 简介

MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。 [1]

系统安装 mysql

检查系统中是否已经安装了MySQL
  • 执行命令
代码语言:javascript
复制
sudo netstat -tap | grep mysql

  • 没有任何输出表明没有安装
安装 Mysql
  • 查看当前发行版
代码语言:javascript
复制
lsb_release -a

  • 根据自己的发行版选择命令安装 Mysql
代码语言:javascript
复制
# ubuntu
sudo apt-get install mysql-server mysql-client
# debian
apt install mariadb-server mariadb-client

尝试安装不合适自己发行版的包会报错

代码语言:javascript
复制
Package ‘mysql-server‘ has no installation candidate

  • mariadb 是Mysql 的开源版

MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。[2]

  • 对于 debian 10,也可以下载包手动安装
代码语言:javascript
复制
wget http://repo.mysql.com/mysql-apt-config_0.8.13-1_all.deb
sudo apt install ./mysql-apt-config_0.8.13-1_all.deb

  • 你将看到配置菜单,可以从中选择要安装的MySQL版本,选好后 -> OK
  • 完成后查看是否安装成功
代码语言:javascript
复制
$ sudo netstat -tap | grep mysql
tcp        0      0 localhost.localdo:mysql 0.0.0.0:*               LISTEN      28807/mysqld 
重置 root 密码
代码语言:javascript
复制
sudo mysql_secure_installation
  • 初始密码为空,输入两次密码
  • 之后会有一些安全选项根据个人情况配置,或者一路 Y 过去
配置用户访问数据库权限
  • 现在使用非 root 用户访问 mysql 会被拒绝
代码语言:javascript
复制
$ mysql
ERROR 1698 (28000): Access denied for user 'vvd'@'localhost'
  • 当db_users使用数据库时,将会通过系统用户认证表进行认证
  • 查看系统用户认证情况:
代码语言:javascript
复制
$ sudo mysql

USE mysql;
 SELECT User, Host, plugin FROM mysql.user;
+------+-----------+-------------+
| User | Host      | plugin      |
+------+-----------+-------------+
| root | localhost | unix_socket |
+------+-----------+-------------+
  • 我当前用户 vvd,不在表里,无法顺利访问 mysql
  • 添加系统用户到数据库访问用户中:
代码语言:javascript
复制
$ sudo mysql

mysql> USE mysql;
mysql> CREATE USER 'vvd'@'localhost' IDENTIFIED BY '';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'vvd'@'localhost';
mysql> UPDATE user SET plugin='unix_socket' WHERE User='vvd';
mysql> FLUSH PRIVILEGES;
mysql> exit;

注意,plugin='unix_socket' 这个插件配置为上文中root的相同插件,我在 debian 10 下是 unix_socket,ubuntu 是 auth_socket

  • 重启mysql服务

否则报错:ERROR 1524 (HY000): Plugin 'auth_socket' is not loaded

代码语言:javascript
复制
sudo systemctl restart mysql
# 或
sudo /etc/init.d/mysql stop 
sudo /etc/init.d/mysql start
  • 之后可以用该用户正常访问mysql了
代码语言:javascript
复制
vvd $ mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 36
Server version: 10.3.31-MariaDB-0+deb10u1 Debian 10

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> exit;
Bye

Docker 安装 mysql

代码语言:javascript
复制
docker run -d \
--name mysql   \
-e MYSQL_ROOT_PASSWORD=<你的mysql密码> \
-p 13306:3306 \
-v /docker/volumns/mysql/data:/var/lib/mysql  \
--restart unless-stopped \
mariadb:10.4.7-bionic

mysql 启动配置

启动方式

1、使用 service 启动:service mysqld start

2、使用 mysqld 脚本启动:/etc/inint.d/mysqld start

3、使用 safe_mysqld 启动:safe_mysqld&

停止

1、使用 service 启动:service mysqld stop

2、使用 mysqld 脚本启动:/etc/inint.d/mysqld stop

3、mysqladmin shutdown

重启

1、使用 service 启动:service mysqld restart

2、使用 mysqld 脚本启动:/etc/inint.d/mysqld restart

其他命令

查看mysql是否在监听端口命令
代码语言:javascript
复制
netstat -tl | grep mysql

查看mysql是否启动命令
代码语言:javascript
复制
ps -aux | grep mysqld

卸载 mysql
代码语言:javascript
复制
sudo apt-get purge mariadb-*
  • yes 表示删除数据库文件
  • 检查是否删除干净
代码语言:javascript
复制
$ dpkg --list|grep maria
$ netstat -tl | grep mysql
  • 如果没有任何输出表明确实删没了

参考资料

  1. https://www.runoob.com/mysql/mysql-tutorial.html
  2. https://www.jb51.net/article/135170.htm
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022年1月18日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Mysql 简介
  • 系统安装 mysql
    • 检查系统中是否已经安装了MySQL
      • 安装 Mysql
        • 重置 root 密码
          • 配置用户访问数据库权限
          • Docker 安装 mysql
          • mysql 启动配置
            • 启动方式
              • 停止
                • 重启
                • 其他命令
                  • 查看mysql是否在监听端口命令
                    • 查看mysql是否启动命令
                      • 卸载 mysql
                      • 参考资料
                      相关产品与服务
                      云数据库 SQL Server
                      腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
                      领券
                      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档