Linux安装mysql服务
本文最后更新于87 天前,其中的信息可能已经过时,如有错误请发送邮件到1979007616@qq.com

相关服务安装指南

从零开始搭建Dcat Admin可参考以下顺序安装:

一、Linux 安装配置卸载 mysql 服务 – 谢幕后 (xmhweb.cn)

二、Linux 安装 php 服务和 composer – 谢幕后 (xmhweb.cn)

三、Linux安装nginx服务 – 谢幕后 (xmhweb.cn)

四、Laravel 框架搭建 – 谢幕后 (xmhweb.cn)

五、Dcat Admin 后台系统搭建 – 谢幕后 (xmhweb.cn)

准备工作

根据查询,首先卸载以前的数据库

#查询数据库
dpkg --list|grep mysql
#根据查询信息进行卸载
apt-get remove mysql-common

安装

说明

Ubuntu18.04 默认mysql数据库版本为 5.7.24
Ubuntu22.04 默认mysql数据库版本为8.0.33

本地安装MYSQL

更新列表

apt-get update 

安装MySQL

apt-get install mysql-server

启动和关闭mysql的命令如下:

#启动: 
service mysql start
#重启:
service mysql restart 
#关闭: 
service mysql stop
#开机自启
systemctl enable mysql
#状态
systemctl status mysql

Docker安装MYSQL

创建mysql容器,指定网络模式为host

docker run -itd --name mysql --restart=always --net=host -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql

创建一个数据库

docker exec mysql-chemex mysql -h127.0.0.1 -P3307 -uroot -p123456 -e "create database chemexGZ;"

Docker-compose安装MYSQL

version: "3.8"
 
services:
    mysql:
      image: mysql:latest
      container_name: mysql
      restart: always
      hostname: mysql
      volumes:
        - ./storage/mysql:/var/lib/mysql
      env_file:
        - ./mysql.env
      ports:
        - "10.10.166.212:3310:3306"

配置

设置数据库密码和远程连接

刚安装好的数据库是没有密码的,直接回车登录mysql,执行以下命令修改密码:

mysql -uroot -p
mysql> use mysql;
  
#开启远程连接
update user set host='%' where user='root';
#修改了之后刷新以下权限
flush privileges;

#修改数据库密码.
ALTER USER 'root'@'%' identified with mysql_native_password BY '123456';
#修改了之后刷新以下权限
flush privileges;

#退出数据库
quit;

在数据库中查询账户属性,看是否修改成功,主要看Hostplugin

SELECT User, Host, plugin FROM mysql.user;

Host:%Host的值需要是%才能进行远程连接。

mysql_native_password是 MySQL 数据库中的一种身份验证插件,用于验证用户的账户和密码。

上面是赋予root用户远程连接权限,这样并不安全,建议新建一个用户:

#创建用户
CREATE USER 'username'@'%' IDENTIFIED BY 'password';
#修改用户密码和身份验证方式
ALTER USER 'username'@'%' IDENTIFIED WITH mysql_native_password BY 'password';

username 替换为你要使用的远程连接用户名,将 password 替换为相应的密码。这将创建一个新用户,并为该用户在任何主机上授予了完全的数据库访问权限。

修改了Host的值还是不能用Navicat远程,还需要修改配置文件

vim /etc/mysql/mysql.conf.d/mysqld.cnf

Mariadb数据库的配置文件在:/etc/mysql/mariadb.conf.d/50-server.cnf

找到bind-address,把127.0.0.1修改成0.0.0.0,如下图

保存退出,然后在重启一下mysql服务。

service mysql restart

再次尝试navicat远程连接,成功了。

数据导出导入

# 导出
mysqldump -u root -p zabbix > zabbix_backup.sql
# 导入
mysql -u root -p zabbix < zabbix_backup.sql

拓展

关于GRANT ALL命令

设置远程登录mysql低于8.0版本用以下命令

GRANT ALL PRIVILEGES ON . TO 'username'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;

在 MySQL 8.0 版本中,出现无法使用 GRANT ALL PRIVILEGES ON *.* TO 'chemex'@'localhost'; 命令的情况可能是由于安全性方面的改进导致的。

在 MySQL 8.0 版本中,为了提高安全性,禁止了使用 GRANT ALL PRIVILEGES ON *.* TO 'user'@'host'; 这种方式直接给用户授予全局权限。相反,推荐的做法是分配特定数据库的权限,并且避免过多的权限赋予。

因此,为了解决这个问题,可以尝试以下方法:

1.授予 ‘chemex’ 用户在特定数据库(比如名为 ‘chemex’ 的数据库)上的所有权限:

GRANT ALL PRIVILEGES ON chemex.* TO 'chemex'@'localhost';

2.如果需要更多的全局权限,你可以单独为 ‘chemex’ 用户授予一些必要的全局权限,例如:

GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO 'chemex'@'localhost';

修改端口

在同一台主机上同时运行 Docker 容器中的 MySQL 和主机上的 MySQL 可能会导致冲突。这是因为两个 MySQL 实例都会尝试使用默认的端口(3306),并且它们具有相同的网络接口。

要修改主机上 MySQL 的端口,你需要编辑 MySQL 的配置文件,并重新启动 MySQL 服务。以下是一般步骤:

  1. 打开 MySQL 的配置文件:通常,MySQL 的配置文件位于 /etc/mysql/my.cnf /etc/my.cnf。使用文本编辑器打开该文件。
  2. 找到 port 参数:在配置文件中寻找名为 port 的参数,它定义了 MySQL 服务器监听的端口号。如果找不到这个参数,可以在 [mysqld] 部分中添加它。
  3. 修改端口号:将 port 参数的值更改为你希望使用的新端口号。确保选择一个未被其他应用程序占用的可用端口。
  4. 保存并关闭配置文件。
  5. 重启 MySQL 服务:service mysql restart

或者更改 Docker MySQL 的端口:在运行 Docker 容器时,可以将容器内部的 MySQL 端口映射到主机的其他端口。例如,将容器内的 3306 端口映射到主机的 3307 端口:docker run -p 3307:3306 mysql

卸载

要卸载 MySQL 数据库,你可以按照以下步骤进行操作:

停止 MySQL 服务:运行以下命令停止 MySQL 服务。

#Ubuntu 系统 
sudo service mysql stop
#CentOS 系统 
sudo systemctl stop mysqld

移除 MySQL 软件包:运行以下命令以移除 MySQL 软件包。

#Ubuntu 系统
sudo apt-get purge mysql-server mysql-client mysql-common mysql-server-core-* mysql-client-core-*
#CentOS 系统
sudo yum remove mysql-server mysql-client

删除 MySQL 配置文件和数据目录:运行以下命令以删除 MySQL 配置文件和数据目录。

#Ubuntu 系统
sudo rm -rf /etc/mysql /var/lib/mysql

#CentOS 系统
sudo rm -rf /etc/my.cnf /var/lib/mysql

清理残留文件和目录:运行以下命令以清理可能存在的 MySQL 残留文件和目录。

#Ubuntu 系统
sudo apt-get autoremove
sudo apt-get autoclean
 
#CentOS 系统
sudo yum autoremove
sudo yum clean all

完成以上步骤后,你的系统上的 MySQL 数据库将被卸载。

小提示:您可以通过RSS订阅本站文章更新,订阅地址:https://blog.xmhweb.cn/feed

评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇