linux安装mysql8.0详解

2023-10-27

一、安装前准备工作

1.卸载系统自带的mariadb

[root@mesdb01 dbdata]# rpm -qa|grep mariadb
mariadb-libs-5.5.68-1.el7.x86_64
[root@mesdb01 dbdata]# rpm -e mariadb-libs-5.5.68-1.el7.x86_64 --nodeps

2.下载mysql安装包

 wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz

如果执行没反应,可以复制安装包链接在Windows的浏览器下载好,再用SSH移到 /use/local/mysql文件夹下面(这个时候就提现出了SSH的便利性)

3.解压mysql安装包

[root@localhost mysql]# tar -zxvf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz 

4.删除安装包以及修改名称

drwxr-xr-x. 9 root root       129 6月  13 14:53 mysql-8.0.20-linux-glibc2.12-x86_64
-rw-r--r--. 1 root root 490922012 6月  13 14:50 mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
[root@localhost mysql]# rm -rf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz 
[root@localhost mysql]# mv mysql-8.0.20-linux-glibc2.12-x86_64/ mysql

二、安装mysql

1./use/local/mysql文件夹下创建data文件夹 存储文件

[root@localhost mysql]# mkdir /usr/local/mysql/data
[root@localhost mysql]# ll
总用量 408
drwxr-xr-x.  2 7161 31415   4096 3月  27 2020 bin
drwxr-xr-x.  2 root root       6 6月  13 14:59 data
drwxr-xr-x.  2 7161 31415     55 3月  27 2020 docs
drwxr-xr-x.  3 7161 31415    282 3月  27 2020 include
drwxr-xr-x.  6 7161 31415    201 3月  27 2020 lib
-rw-r--r--.  1 7161 31415 404604 3月  26 2020 LICENSE
drwxr-xr-x.  4 7161 31415     30 3月  27 2020 man
-rw-r--r--.  1 7161 31415    687 3月  26 2020 README
drwxr-xr-x. 28 7161 31415   4096 3月  27 2020 share
drwxr-xr-x.  2 7161 31415     77 3月  27 2020 support-files

2.分别创建用户组以及用户和密码

groupadd mysql
useradd -g mysql mysql

3.授权新建的用户

[root@localhost mysql]# chown -R mysql.mysql /usr/local/mysql/
[root@localhost mysql]# chmod 750 /usr/local/mysql/data -R

4.配置环境,编辑/etc/profile文件

vim /etc/profile

在最后一行加

export PATH=$PATH:/usr/local/mysql/bin:/usr/local/mysql/lib

刷新环境变量配置文件

[root@localhost mysql]# source /etc/profile

5.编辑my.cnf文件

vi /etc/my.cnf
[mysql]
default-character-set=utf8mb4
[client]
#port=3306
socket=/var/lib/mysql/mysql.sock

[mysqld]
#port=3306
#server-id=3306
user=mysql
general_log = 1
general_log_file= /var/log/mysql/mysql.log
socket=/var/lib/mysql/mysql.sock
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
log-bin=/usr/local/mysql/data/mysql-bin
innodb_data_home_dir=/usr/local/mysql/data
innodb_log_group_home_dir=/usr/local/mysql/data/
character-set-server=utf8mb4
lower_case_table_names=1
autocommit=1
default_authentication_plugin=mysql_native_password
symbolic-links=0
# Disabling symbolic-links is recommended to prevent assorted security risks
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd

[mysqld_safe]
log-error=/usr/local/mysql/data/mysql.log
pid-file=/usr/local/mysql/data/mysql.pid

#
# include all files from the config directory

6.初始化基础信息,得到数据库的初始密码(1AQ-IPFvrdh))

[root@localhost bin]# ./mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/ --initialize
2022-06-13T07:06:39.520249Z 0 [Warning] [MY-011070] [Server] 'Disabling symbolic links using --skip-symbolic-links (or equivalent) is the default. Consider not using this option as it' is deprecated and will be removed in a future release.
2022-06-13T07:06:39.520364Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.20) initializing of server in progress as process 40564
2022-06-13T07:06:39.524990Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2022-06-13T07:06:39.900171Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
mysqld: File '/var/log/mysql/mysql.log' not found (OS errno 2 - No such file or directory)
2022-06-13T07:06:40.555645Z 0 [ERROR] [MY-011263] [Server] Could not use /var/log/mysql/mysql.log for logging (error 2 - No such file or directory). Turning logging off for the server process. To turn it on again: fix the cause, then either restart the query logging by using "SET GLOBAL GENERAL_LOG=ON" or restart the MySQL server.
2022-06-13T07:06:40.803968Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: 1AQ-IPFvrdh)

7.复制 mysql.server 文件,在/usr/local/mysql/mysql-8.0目录下执行

[root@localhost mysql]# cp -a ./support-files/mysql.server /etc/init.d/mysql
[root@localhost mysql]# cp -a ./support-files/mysql.server /etc/init.d/mysqld

8.设置权限

[root@localhost mysql]# chown 777 /etc/my.cnf
[root@localhost mysql]# chmod +x /etc/init.d/mysql
[root@localhost mysql]# chmod +x /etc/init.d/mysqld

9.检查一下/var/lib/mysql是否存在,否则进行创建,然后再赋予权限

[root@localhost lib]# mkdir /var/lib/mysql 
[root@localhost lib]# chown -R mysql:mysql /var/lib/mysql/ 

10.启动数据库

[root@localhost lib]# service mysql start 
Starting MySQL.Logging to '/usr/local/mysql/data/mysql.log'.
 SUCCESS! 

三、配置mysql

  1. 进入数据库
[root@localhost mysql]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.20

2.设置新密码

mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
Query OK, 0 rows affected (0.01 sec)

mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

  1. 开启远程访问
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
4 rows in set (0.01 sec)

mysql> use mysql;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

mysql> update user set host='%' where user='root';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1  Changed: 1  Warnings: 0

flush privileges;

4.开启防火墙端口

[root@localhost mysql]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
success
[root@localhost mysql]# firewall-cmd --reload
success

5.测试连接
在这里插入图片描述
6.设置mysql自启动

[root@localhost bin]# chkconfig --add mysql
[root@localhost bin]# chkconfig --list

注:该输出结果只显示 SysV 服务,并不包含
原生 systemd 服务。SysV 配置数据
可能被原生 systemd 配置覆盖。 

      要列出 systemd 服务,请执行 'systemctl list-unit-files'。
      查看在具体 target 启用的服务请执行
      'systemctl list-dependencies [target]'。

mysql           0:关    1:关    2:开    3:开    4:开    5:开    6:关
netconsole      0:关    1:关    2:关    3:关    4:关    5:关    6:关
network         0:关    1:关    2:开    3:开    4:开    5:开    6:关
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

linux安装mysql8.0详解 的相关文章

  • 从 MySQL 返回结果时的数字顺序

    我的数据库表中有以下类型的标题 Topic 1 blah blah Topic 2 blah blah Topic 3 blah blah Topic 10 blah blah Topic 11 blah blah etc 选择查询将始终返
  • java.sql.SQLException:已经关闭

    我们有一个在 Tomcat 上运行的 Web 应用程序 带有 MySQL 后端 有一段时间一切都很好 然后突然我们开始遇到这个异常java sql SQLException Already closed 整个堆栈跟踪是 DEBUG org
  • MySQL 可以存储多少行?

    所以我是一个初学者 刚刚自学了几个月的MySQL 我在工作中总是使用 phpMyAdmin 我过去的工作只涉及大约 100k 行的表 所以没有什么大问题 然而 我的客户现在想要在表中存储大约 800 万行 MySQL phpMyAdmin
  • 如何更改Linux服务器中的MySQL表名不区分大小写?

    我正在开发一个旧网站 该网站曾经托管在 Apple 服务器上 当它迁移到新的 Linux 服务器时 它停止工作 我很确定这是因为 php 脚本中使用的所有 MySQL 查询对于表名都有不同的大小写组合 我不知道为什么原始开发人员在创建表名或
  • MySQL 将日期时间转换为unix时间?

    我有一个 DATETIME 格式的列 我想将其转换为数据库中的 UNIXTIME 那会是什么样的查询 我知道如何从 UNIXTIME 转换为 DATETIME 但我从未做过相反的操作 我用过FROM UNIXTIME 没有TO UNIXTI
  • 如何搭建qtwayland?

    我花了一整天的时间尝试使用QtWayland Compositor 1 0在 Qt 创建者中 我已经遵循了从那里开始的所有步骤https wiki qt io QtWayland https wiki qt io QtWayland但我收到
  • 需要 SQL 选择查询帮助

    我的问题类似于SQL选择组查询 https stackoverflow com questions 11407601 sql select group query 但模式发生了变化 我想要不同的结果 如下所述 给定链接的解决方案没有给我正确
  • 动态表单字段验证的数据库设计

    在我的应用程序中 我允许用户创建一个包含他们想要的任何 HTML 表单字段 例如文本输入 文本区域 选择等 的表单 我想让用户能够为每个字段定义 0 个或多个累积验证规则 最多可能有 25 个不同的验证规则 我应该如何建模 这是一个潜在的解
  • Git - 致命:无法获取当前工作目录?

    When I git clone从回购协议中 我得到 fatal Could not get current working directory No such file or directory 我该怎么办 我检查了服务器并发现 git文
  • UTF-8、PHP 和 XML Mysql

    我在解决这个问题时遇到了很大的问题 我有一个编码 latin1 swedish ci 的 mysql 数据库和一个存储名称和地址的表 我正在尝试输出 UTF 8 XML 文件 但在使用以下字符串时遇到问题 Otiv gen它被输出为Otiv
  • 无法将外键值插入链接表

    我目前正在尝试将数据插入名为的表中 客户报价 该表充当 顾客 表和 客户关税 桌子 它还记录通过以下方式提交数据的用户 user table 这是我的数据库的架构 https i stack imgur com gyCdb png http
  • 如何使用Python的Mysqldb模块?而不是 %s 作为查询参数?

    MySqlDb 是一个很棒的 Python 模块 但有一个部分非常烦人 查询参数如下所示 cursor execute select from Books where isbn s isbn 而已知宇宙中的其他地方 oracle sqlse
  • Node.js 将 async/await 与 mysql 一起使用

    我一直在尝试在节点中将 async await 与 MySQL 一起使用 但它每次都会返回一个未定义的值 有理由吗 请在下面找到我的代码 const mysql require promise mysql var connection co
  • pip 找不到满足要求的版本 django==2.2.1

    我刚刚将操作系统更改为 linux 并且想安装 django 但我无法安装最新版本的 django 我努力了 pip install django 但是它安装了 django 1 11 11 这不是我需要的 我还将我的 pip 升级到了 1
  • 如何在同一列中选择多个值?

    我正在尝试在单个列中选择多个值 基本上我希望查询选择列下的所有内容family有价值观Software 1Y XI 1Y and P1 1Y 我正在运行这个查询 SELECT salesorder masterproduct family
  • 新行分隔符不适用于 group_concat 函数

    我有一根绳子 name lastname name2 lastname2 包含数据库表中的值 我想显示它 喜欢 name lastname name2 lastname2 我使用 group concat 函数 它适用于逗号分隔符 但我需要
  • 检测 MySQL 中的 utf8 损坏字符

    我有一个数据库 其中有一堆损坏的 utf8 字符分散在多个表中 字符列表不是很广泛 AFAIK 修复给定的表非常简单 update orderItem set itemName replace itemName 但我无法找到检测损坏字符的方
  • mysql 准备好的语句错误:MySQLSyntaxErrorException

    我使用准备好的语句编写了选择语句 每次尝试运行都会出现此错误 我如何克服这个错误 我的jdbc连接器是mysql connector java 5 1 13 bin jar 我的代码 public Main add ad to getAdD
  • MySQL 错误 1264:列的值超出范围

    As I SETMySQL 中的 cust fax 表如下所示 cust fax integer 10 NOT NULL 然后我插入这样的值 INSERT INTO database values 3172978990 但随后它说 错误 1
  • mysql 无法向用户授予权限,出现错误:ERROR 1819 (HY000): 您的密码不满足当前策略要求

    我正在将一个新应用程序迁移到包含 MySQL 数据库的生产环境 尝试使用以下命令授予所需权限时 GRANT ALTER CREATE ON MyDB to ThisUser 我收到错误 ERROR 1819 HY000 Your passw

随机推荐