本篇文章给大家带来的内容是关于Linux安装mysql 8.0的详细方法介绍(代码示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

经过一番努力下载mysql文件,我们可以开始Mysql8.0的安装了。

解压文件// 解压文件生成两个xz格式的压缩文件

$ tar -xvf mysql-8.0.13-linux-glibc2.12-x86_64.tar

mysql-router-8.0.13-linux-glibc2.12-x86_64.tar.xz

mysql-test-8.0.13-linux-glibc2.12-x86_64.tar.xz

// 我们需要先删掉/移除原有文件,才可以继续解压,因为解压出来的.tar文件和.tar.xz文件重名

mv mysql-8.0.13-linux-glibc2.12-x86_64.tar ../

xz -d mysql-router-8.0.13-linux-glibc2.12-x86_64.tar.xz

tar -xvf mysql-8.0.13-linux-glibc2.12-x86_64.tar

// 为了方便查找,改个名字

mv mysql-8.0.13-linux-glibc2.12-x86_64.tar mysql8

环境配置

我们需要专门的mysql进程启动用户和权限管理:// 创建mysql系统用户和用户组

useradd -r mysql

// 给予安装目录mysql权限

chown mysql:mysql -R mysql8

配置自己的mysql配置文件,因为我有多个Mysql库,我手动指定很多参数:[client]

socket=/home/work/lnmp/mysql8/tmp/mysql.sock

default-character-set=utf8

[mysql]

basedir=/home/work/lnmp/mysql8/

datadir=/home/work/lnmp/mysql8/data/

socket=/home/work/lnmp/mysql8/tmp/mysql.sock

port=3306

user=mysql

# 指定日志时间为系统时间

log_timestamps=SYSTEM

log-error=/home/work/lnmp/mysql8/log/mysql.err

# 指定字符集为utf8,因为mysql8.0中的默认字符集为utfmb4,会和其他程序引起兼容性问题

default-character-set=utf8

[mysqld]

basedir=/home/work/lnmp/mysql8/

datadir=/home/work/lnmp/mysql8/data/

socket=/home/work/lnmp/mysql8/tmp/mysql.sock

port=3306

user=mysql

log_timestamps=SYSTEM

collation-server = utf8_unicode_ci

character-set-server = utf8

# 指定默认认证的加密方式,mysql8.0中默认方式为caching_sha2_password,引起老版本兼容性问题

default_authentication_plugin= mysql_native_password

[mysqld_safe]

log-error=/home/work/lnmp/mysql8/log/mysqld_safe.err

pid-file=/home/work/lnmp/mysql8/tmp/mysqld.pid

socket=/home/work/lnmp/mysql8/tmp/mysql.sock

[mysql.server]

basedir=/home/work/lnmp/mysql8

socket=/home/work/lnmp/mysql8/tmp/mysql.sock

[mysqladmin]

socket=/home/work/lnmp/mysql8/tmp/mysql.sock

这个里面我指定了错误日志的路径,在接下来的操作中,如果出现错误,除了查看终端显示的错误,还要记得去错误日志里查看详细的信息。

因为我指定了一些文件,所以需要提前创建:mkdir log

touch log/mysql.err

touch log/mysqld_safe.err

mkdir tmp

chown mysql:mysql -R ../*

数据库初始化

如果我们不初始化,直接使用bin/mysqld_safe启动会报错,因为我们需要初始化mysql环境,此时参考文章:$ bin/mysqld --initialize --user=mysql --basedir=/home/work/lnmp/mysql8/ --datadir=/home/work/lnmp/mysql8/data/

2018-12-13T06:15:03.159123Z 0 [System] [MY-013169] [Server] /home/work/lnmp/mysql8/bin/mysqld (mysqld 8.0.13) initializing of server in progress as process 1190

2018-12-13T06:15:05.255817Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: !/7oy-u%(XfZ

2018-12-13T06:15:06.135143Z 0 [System] [MY-013170] [Server] /home/work/lnmp/mysql8/bin/mysqld (mysqld 8.0.13) initializing of server has completed

提示中提示我们已经创建了root的用户和一个临时密码,同时初始化成功。

启动数据库

这时根据官方文档我们使用mysqld_safe 命令来启动:$ bin/mysqld_safe

2018-12-13T06:16:58.604154Z mysqld_safe Logging to '/home/work/lnmp/mysql8/log/mysql.err'.

2018-12-13T06:16:58.629249Z mysqld_safe Starting mysqld daemon with databases from /home/work/lnmp/mysql8/data

打开数据库

数据库进程已经启动,我们可以在新终端正常使用mysql数据库了:$ ps aux | grep mysql

root 2141 0.0 0.0 815844 5328 pts/0 S+ 14:16 0:00 /bin/sh bin/mysqld_safe

mysql 2319 1.0 0.5 1997492 374448 pts/0 Sl+ 14:16 0:00 /home/work/lnmp/mysql8/bin/mysqld --basedir=/home/work/lnmp/mysql8/ --datadir=/home/work/lnmp/mysql8/data --plugin-dir=/home/work/lnmp/mysql8//lib/plugin --user=mysql --log-error=/home/work/lnmp/mysql8/log/mysql.err --pid-file=/home/work/lnmp/mysql8/tmp/mysqld.pid --socket=/home/work/lnmp/mysql8/tmp/mysql.sock --port=3306

work 25258 0.0 0.0 105356 824 pts/1 S+ 14:18 0:00 grep mysql

但是直接使用mysql命令报错:$ bin/mysql -uroot

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

根据mysql.sock的作用的说明,我们指定mysql.sock路径即可:bin/mysql -S /home/work/lnmp/mysql8/tmp/mysql.sock -h localhost -uroot -p

Enter password:

修改初始密码

我们打开数据库后使用任何命令会提示我们修改初始的临时密码:mysql> show databases;

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

修改密码:mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';

Query OK, 0 rows affected (0.05 sec)

重新连接,新密码生效。

链接全局命令

此时,我们调用mysql只能用路径/home/work/lnmp/mysql8/bin/mysql或相对路径,需要链接为全局命令:$ ln -s /home/work/lnmp/mysql8/bin/mysql /usr/bin/

$ ln -s /home/work/lnmp/mysql8/bin/mysql_safe /usr/bin/

指定socket文件

在8.0这个版本,我尝试了很多方法试图在my.cnf中修改mysql命令查询的默认socket路径,依然不成功,所以只好在默认路径里面链接socket文件了:ln -s /home/work/lnmp/mysql8/tmp/mysql.sock /tmp/

然后我们再调用mysql命令就不会报错了。

重启数据库

在过程中我们调试参数可能需要重启数据库:// 杀死进程,相当于停止

cat tmp/mysqld.pid | xargs kill

// 正常启动mysql

bin/mysqld_safe --defaults-file=/home/work/lnmp/mysql8/my.cnf

新增用户&赋予权限

在mysql8里,我创建用户并赋值,结果报错:mysql > grant all privileges on *.* to root@localhost indentified by '123456';

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'indentified by '123456'' at line 1

根据网上资料,是由于Mysql8将创建账户和赋予权限的操作分开了:// 创建账户

create user '用户名'@'访问主机' identified by '密码';

// 赋予权限(修改权限时在后面加with grant option)

grant 权限列表 on 数据库 to '用户名'@'访问主机' ;

// 刷新权限

flush privileges;

总结

经过解压文件,创建mysql用户和用户组,配置my.cnf配置文件,修改权限,数据库初始化、启动,打开数据库,修改初始密码,链接全局命令和指定socket文件路径,所有的安装工作都已经完成了。

linux 安装mysql 8.0_Linux安装mysql 8.0的详细方法介绍(代码示例)相关推荐

  1. windows安装VMware最新版本(VMware Workstation 17.0 Pro)详细教程

    专栏地址:嵌入式开发 专栏文章: [01]windows安装VMware最新版本(VMware Workstation 17.0 Pro)详细教程 [02]VMware17虚拟机安装Ubuntu最新版 ...

  2. mysql创建数据表示例_Mysql创建数据表的方法介绍(附示例)

    本篇文章给大家带来的内容是关于Mysql创建数据表的方法介绍(附示例),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 数据表是数据库最重要的组成部分之一,是其他对象的基础.如果我们的 ...

  3. mysql一对多前端实现_MySQL实现一对多查询的代码示例

    本篇文章给大家带来的内容是关于MySQL实现一对多查询的代码示例,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助. 这次要实现的是一对多查询,使用 MySQL 的 group_conca ...

  4. 【Linux 内核】进程管理 task_struct 结构体 ① ( task_struct 结构体引入 | task_struct 代码示例 )

    文章目录 一.task_struct 结构体 二.task_struct 结构体代码示例 一.task_struct 结构体 在 Linux 操作系统 中 , 进程 作为 调度的实体 , 需要将其抽象 ...

  5. MySQL修改数据表存储引擎的3种方法介绍

    看你的mysql现在已提供什么存储引擎:mysql> show engines; 看你的mysql当前默认的存储引擎:mysql> show variables like '%storag ...

  6. vb6.0服务器组件安装失败,win10系统安装不上vb6.0的解决方法

    很多小伙伴都遇到过 方法/步骤 1:本文以vb6.0 2:在属性界面选择兼容性–勾选以兼容模式运行此程序,选择xp,点击应用按钮,如下图所示 3:继续鼠标右键单击setup,选择以管理员身份运行程序, ...

  7. mysql排序规则_MySQL中Order By多字段排序规则代码示例

    说在前面 突发奇想,想了解一下mysql order by排序是以什么规则进行的? 好了,话不多说,直接进入正题吧. MySql order by 单字段 建一测试表如下: CREATE TABLE ...

  8. 安装打印机驱动程序的操作步骤,详细方法介绍

    安装打印机驱动程序是使用打印机的前提条件,因此学会正确的安装方法是非常重要的.下面是安装打印机驱动程序的详细步骤分析,为你全面的讲解安装和出现故障如何处理等问题. 一.安装打印机的准备工作 在安装打印 ...

  9. mysql中函数mid_MySQL MID()函数的用法详解(代码示例)

    在MySQL中,MID()函数返回从指定位置开始的子字符串. MID()和SUBSTR()都是SUBSTRING()的同义词. 基本语法是这样的:MID(str,pos,len) 这里,str是字符串 ...

最新文章

  1. 【读书笔记】Lambda表达式
  2. SQLServer 2005 数据库定阅复制实现双机热备(主要是sharepoint 内容数据库)
  3. 终于找全啦!一二线城市知名互联网公司名单!对着找就对了
  4. SAP S/4HANA 的30天免费试用版
  5. html2个表单,单个html angular2中的多个表单
  6. 接口缺方法调用时报错_TypeScript真香系列——接口篇
  7. Java中的toString()方法
  8. [20141121]无法通过powershell读取sql server性能计数器问题
  9. 关于QTableWidget删除遇到的坑(removeRow)
  10. c语言实现url编码源码,URL encode 与 URL decode 的C语言实现
  11. 浅析基于AI烟火识别的森林防火风险监测预警系统设计方案
  12. Linux中 ps命令详解
  13. iOS 微信分享整理 - 自定义分享菜单
  14. android输入法切换
  15. 计算机科学与探索期刊审稿周期,计算机科学与探索期刊 从投稿到录用过程
  16. 在windows上实现ubuntu、centos的远程桌面控制
  17. 进 /user/用户名/Library/Application Support/
  18. 计算机专业留学申请经验介绍,[成功案例分析] 低GPA(70)如何成功申请到美国计算机(CS)研究生——经验总结...
  19. Mac上的经典播放器——Elmedia Player
  20. 数学与泛型编程:高效编程的奥秘 pdf下载_Mac 软件专题:教学参考工具软件-外语/医学/天文/地理/数学等...

热门文章

  1. SimpleDateFormat与线程安全
  2. 【CC November Challenge 2012】Arithmetic Progressions【分块】【FFT】
  3. 【康复训练】[国家集训队] calc【dp】【拉格朗日插值】
  4. Codeforces Round #740 (Div. 2, based on VK Cup 2021 - Final (Engine))
  5. YBTOJ:采矿战略(线段树维护dp、树链剖分)
  6. P2231-[HNOI2002]跳蚤【容斥】
  7. CF297E-Mystic Carvings【树状数组】
  8. P3804-[模板]后缀自动机【SAM】
  9. 欢乐纪中某B组赛【2019.1.20】
  10. 2018/7/10-纪中某C组题【jzoj3792,jzoj3793,jzoj3794】