本文主要介绍如何在linux环境(64位)下搭建mysql8.0的数据库环境

1、到指定目录下下载安装包

[root@minio3 ~]# cd /usr/local/src
[root@minio3 src]# wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz

2、解压mysql8, 通过xz命令解压出tar包(这里时间可能会久一点根据服务器性能决定请耐心等待) 然后通过tar命令解压出文件夹

[root@minio3 src]# xz -d mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
[root@minio3 src]# tar xvf mysql-8.0.20-linux-glibc2.12-x86_64.tar

3、将/usr/local/src下的mysql-8.0.20-linux-glibc2.12-x86_64文件夹内容移动到/usr/local/mysql下

[root@minio3 local]# cd /usr/local
[root@minio3 local]# mkdir mysql
[root@minio3 local]# cd /usr/local/src
[root@minio3 src]# mv /usr/local/src/mysql-8.0.20-linux-glibc2.12-x86_64/* /usr/local/mysql
[root@minio3 src]# cd /usr/local/mysql

4、创建用户组及用户和密码并授权

[root@minio3 mysql]# groupadd mysql
[root@minio3 mysql]# useradd -g mysql mysql
[root@minio3 mysql]# chown -R mysql.mysql /usr/local/mysql

5、编辑my.cnf文件

[root@minio3 mysql]# vim /etc/my.cnf
清空默认的配置将如下内容复制到配置文件中
[mysqld]
user=root
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
port=3306
max_connections=200
max_connect_errors=10
character-set-server=utf8
default-storage-engine=INNODB
default_authentication_plugin=mysql_native_password
lower_case_table_names=1
group_concat_max_len=102400
wait_timeout=31536000
interactive_timeout=31536000
[mysql]
default-character-set=utf8
[client]
port=3306
default-character-set=utf8

6、初始化基础信息,最后一行后面会有个随机的初始密码保存下来一会登录要用(如果忘记了就删掉data重新初始化)

[root@minio3 mysql]# cd bin
[root@minio3 bin]# ./mysqld --initialize
2022-04-27T08:57:45.274724Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.20) initializing of server in progress as process 150492
2022-04-27T08:57:45.277480Z 0 [Warning] [MY-013242] [Server] --character-set-server: 'utf8' is currently an alias for the character set UTF8MB3, but will be an alias for UTF8MB4 in a future release. Please consider using UTF8MB4 in order to be unambiguous.
2022-04-27T08:57:45.291420Z 1 [System] [MY-013576] [InnoDB] InnoDB initialization has started.
2022-04-27T08:57:46.124824Z 1 [System] [MY-013577] [InnoDB] InnoDB initialization has ended.
2022-04-27T08:57:47.882182Z 6 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: OLOkz_e)c8Jw 注意上面最后一行生成的默认密码:OLOkz_e)c8Jw 后面登录要用

7、添加mysqld服务到系统,授权以及添加服务

[root@minio3 bin]# cd ..
[root@minio3 mysql]# cp -a ./support-files/mysql.server /etc/init.d/mysql
[root@minio3 mysql]# chmod +x /etc/init.d/mysql
[root@minio3 mysql]# chkconfig --add mysql

8、启动mysql

注:任何路径都可以
[root@minio3 opt]# service mysql start
Starting MySQL.Logging to '/usr/local/mysql/data/minio3.err'.
. SUCCESS!

9、将mysql添加到命令服务

ln -s /usr/local/mysql/bin/mysql /usr/bin

10、登录mysql

注:输入第6步中生成的初始密码
[root@minio3 opt]# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.20

11、更改密码

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

12、更改root连接权限,创建数据库devdb

mysql> use mysql
mysql> create database devdb;
Query OK, 1 row affected (0.00 sec)
mysql> update user set host='%' where user = 'root';
Query OK, 1 row affected (0.01 sec)
Rows matched: 1 Changed: 1 Warnings: 0
mysql> flush privileges;
Query OK, 0 rows affected (0.01 sec) --查看数据
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| devdb |
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
5 rows in set (0.01 sec) --查看数据库版本
mysql> select version();
+-----------+
| version() |
+-----------+
| 8.0.20 |
+-----------+
1 row in set (0.00 sec) --查看数据库字符集
mysql> SHOW VARIABLES LIKE 'character%';
+--------------------------+----------------------------------+
| Variable_name | Value |
+--------------------------+----------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/local/mysql/share/charsets/ |
+--------------------------+----------------------------------+
8 rows in set (0.01 sec)

13、退出数据库

mysql> exit;
Bye

14、再次登录数据库

注:要输入修改后的密码,此时已经可以用客户端工具连接mysql数据库
[root@minio3 opt]# mysql -uroot -ppass;
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.20 MySQL Community Server - GPL Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>

15、创建用户并赋权

#进入到mysql.db
mysql> use mysql;
Database changed #查看当前的用户以及可访问的地址还有授权能力
mysql> select user,host,grant_priv from user;
+------------------+-----------+------------+
| user | host | grant_priv |
+------------------+-----------+------------+
| root | % | Y |
| mysql.infoschema | localhost | N |
| mysql.session | localhost | N |
| mysql.sys | localhost | N |
+------------------+-----------+------------+
4 rows in set (0.00 sec) #如果root用户无授权能力(grant_priv = 'N'),则可以开起来
update mysql.user set Grant_priv='Y' where user='root'; #创建用户,最后的参数是密码。‘localhost’表示只能本机登录,也可以设置你期望的登录ip,不设置的话默认是‘%’,也就是都可以登录
mysql> create user 'testuser'@'%' identified by 'testpwd'; Query OK, 0 rows affected (0.00 sec) #给新用户授权,这里授予的权限是只能操作一个数据库(数据库名为:testdb,把数据库名变成 *.* 就是给所有数据库的权限)
#如果root用户只允许localhost登录,而这里授权的时候又给用户授予不管任何地址都可以登录的能力,则会报无权限的错。
#此时需要把root用户也改成‘%’的登录限制才行.也就是说,授权者的可登录源ip范围应该 ≥ 被授权者的可登录源ip范围
#grant all privileges on happy_db.* to 'testdb'@'localhost'; mysql> grant all privileges on testdb.* to 'testuser'@'%';
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec) #删除对应的用户
drop user testuser;

如果启动时工程报错:Fatal error occurred in the transaction branch-check your data for consistency

解决:

mysql> GRANT XA_RECOVER_ADMIN ON *.* TO 'testuser'@'%';

mysql> flush privileges;

补充:

查看数据库默认字符集

mysql> show create database mytestdb;

修改数据库默认字符集

mysql> alter database mytestdb charset utf8mb4;

mysql8.0环境搭建linux的更多相关文章

  1. ubantu16.04+mxnet +opencv+cuda8.0 环境搭建

    ubantu16.04+mxnet +opencv+cuda8.0 环境搭建 建议:环境搭建完成之后,不要更新系统(内核) 转载请注明出处: 微微苏荷 一 我的安装环境 系统:ubuntu16.04 ...

  2. centos LAMP第一部分-环境搭建 Linux软件删除方式,mysql安装,apache,PHP,apache和php结合,phpinfo页面,ldd命令 第十九节课

    centos LAMP第一部分-环境搭建  Linux软件删除方式,mysql安装,apache,PHP,apache和php结合,phpinfo页面,ldd命令 第十九节课 打命令之后可以输入: e ...

  3. 菜鸟学自动化测试(八)----selenium 2.0环境搭建(基于maven)

    菜鸟学自动化测试(八)----selenium 2.0环境搭建(基于maven) 2012-02-04 13:11 by 虫师, 11419 阅读, 5 评论, 收藏, 编辑 之前我就讲过一种方试来搭 ...

  4. XNA 4.0 环境搭建和 Hello World,Windows Phone 游戏开发

    XNA 4.0 环境搭建和 Hello World,Windows Phone 游戏开发 使用 Scene 类在 XNA 中创建不同的场景(八) 摘要: 平方已经开发了一些 Windows Phone ...

  5. (win10 64位系统中)Visual Studio 2015+OpenCV 3.3.0环境搭建,100%成功

    (win10 64位系统中)Visual Studio 2015+OpenCV 3.3.0环境搭建,100%成功 1.下载opencv 官网http://opencv.org/下载windows版Op ...

  6. [转]OPENCV3.3+CUDA9.0 环境搭建若干错误总结

    编译OpenCV设计启用OpenGL三维可视化支持和启用GPU CUDA并行加速处理的基本知识: 1.从2.4.2版本开始,OpenCV在可视化窗口中支持OpenGL,这就意味着在OpenCV中可以轻 ...

  7. Mysql8.0主从复制搭建,shardingsphere+springboot+mybatis读写分离

    1.安装mysql8.0 首先需要在192.167.3.171上安装JDK. 下载mysql安装包,https://dev.mysql.com/downloads/,找到以下页面下载. 下载后放到li ...

  8. 集群架构03·MySQL初识,mysql8.0环境安装,mysql多实例

    官方网址 https://dev.mysql.com/downloads/mysql/社区版本分析 MySQL5.5:默认存储引擎改为InnoDB,提高性能和可扩展性,增加半同步复制 MySQL5.6 ...

  9. Java部署环境搭建(Linux)

    环境搭建必须jdk.tomcat.mysql(基础) 额外的软件包项目中可能用到 jdk:它包含jre和开发所需完整类库. tomcat:它是一个web容器,项目通常往webapps下扔,便于外界访问 ...

  10. dm368 ipnc3.0环境搭建脚本

    前言 为了方便其他人搭建dm368 ipnc3.0环境,我写了个脚本,执行脚本就可以自动搭建好环境了,绝对的傻瓜操作了,不过有一个地方让我很郁闷,那就是在用sed替换掉某段内容的时候(143行--15 ...

随机推荐

  1. Android 图表开源库调研及使用示例

    原文地址: Android图表开源库调研及使用示例 - Stars-One的杂货小窝 之前做的几个项目都是需要实现图表统计展示,于是做之前调研了下,做下记录 概述 AAChartCore-Kotlin ...

  2. redis的基本命令,并用netty操作redis(不使用springboot或者spring框架)就单纯的用netty搞。

    大家如果对使用netty搞这些http请求什么的感兴趣的,可以参观我自己创建的这个项目. nanshaws/nettyWeb: 复习一下netty,并打算做一个web项目出来 (github.com) ...

  3. ubuntu防火墙ufw基本使用方法

    ubuntu系统基本使用方法 防火墙 # 查看服务器防火墙状态 ufw status # 将防火墙设置为可用状态 ufw enable # 将防火墙设置为关闭状态 ufw disbale # 放行端口 ...

  4. SpringBoot发送虚拟请求~

    1.创建一个测试用的TestController @RestController public class TestController { @GetMapping("/test" ...

  5. keycloak~对接login-status-iframe页面判断用户状态变更

    上次我们说了,keycloak的login-status-iframe页面的作用,并解决了跨域情况下,iframe与主页面数据传递的方法,这一次,我们主要分析login-status-iframe.h ...

  6. 如何将3D模型导入可视化大屏系统中,并实现可交互的数字孪生大屏效果?

    首先我们需要准备一款数字孪生软件,本文中使用的是山海鲸可视化数字孪生软件,这是一款免费的零代码数字孪生大屏开发平台软件. 下载完成后打开山海鲸可视化,点击新建来创建一个大屏项目. 我们可以根据自己的需 ...

  7. Python汉诺塔递归算法实现

    关于用递归实现的原理,请查看我之前的文章: C语言与汉诺塔 C#与汉诺塔 以下为代码: count = 0 def move(pile, src, tmp, dst): global count if ...

  8. Win10笔记本开启热点让手机上网

    Win10开启热点让手机上网,笔记本电脑开启热点,笔记本电脑开启WiFi,手机连接笔记本电脑热点上网. 1.前提条件:笔记本电脑网线联网,笔记本电脑支持热点 2.胆子要大,不怕公司网管统计发现你的电脑 ...

  9. 快速上手Linux核心命令(二):关机、重启

    @ 目录 前言 一.在命令行下查看命令帮助 man 命令 --help 命令 info命令 二.Linux关机.重启 shutdown reboot.halt.poweroff 前言 从这篇开始,我们 ...

  10. 云图说 | 容器交付流水线ContainerOps,助力企业容器化转型

    摘要:华为云容器镜像服务SWR推出容器交付流水线(ContainerOps)可以帮助企业容器化转型. 容器交付流水线(ContainerOps)是华为云容器镜像服务(SWR)推出的面向从源代码到生产上 ...