当前位置:   article > 正文

MySQL:ubuntu20通过安装包安装mysql8_ubuntu20 安装mysql8

ubuntu20 安装mysql8

MySQL官网

官网:https://www.mysql.com/

  • MYSQL.com:就是本网站的home
  • DOWNLOADS:MySQL下载
    • Enterprise:MySQL企业版本相关,略过
    • Community:社区版,下载和使用社区版
      • MySQL Community Server:MySQL Server
      • MySQL Router:路由中间件
      • MySQL Workbench:官方图型化管理界面
  • DOCUMENTATION:官方文档
  • Developer Zone:MySQL开发工程师板块
    • Fornums:论坛
    • Bugs:MySQL Bug相关
    • Worklog:开发记录
    • Labs:MySQL实验性项目
    • Plant MySQL: 和MySQL相关从业人员的博客
    • Blog Articles: Oracle工程师自己的博客
      在这里插入图片描述

安装MySQL

  • MySQL5.6以后的版本,推荐使用官方版本
  • MySQL在5.6以后不断重构源码,安装包越来越大,功能和性能在持续改进

下载安装包

MySQL有三种方法安装

  • apt-get等安装包安装:最简单的安装方法
  • Source Code源码编译安装:不推荐,仅仅用来研究
  • 通用二进制安装包安装:推荐安装方法,

这里我使用第3种方法在ubuntu种安装:

下载地址点击这里,就会进入如下页面:

  • linux系列推荐下载Linux-Generic通用安装版版本,即使是ubuntu的也推荐Linux-Generic,这样可以一台机器上安装多个版本的linux
    在这里插入图片描述
  • 然后选择第二个,就会进入如下页面

在这里插入图片描述

安装

环境:uname -a

$ uname -a
Linux ubuntu 4.18.0-10-generic #11-Ubuntu SMP Thu Oct 11 15:13:55 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
  • 1
  • 2

1、创建MYSQL数据库数据存放的路径

$  mkdir -p workspace/mysql/mysql-data/{3306/{data,tmp,binlog,innodb_ts,innodb_log},backup,scripts}
  • 1

2、设置配置文件
执行命令:

$ sudo gedit /etc/my.cnf
  • 1

然后下面的内容填充进入

  • 配置
[client]
port = 3306
socket = /home/oceanstar/workspace/mysql/mysql-data/3306/mysql.sock

[mysql]
prompt=(\\u@\\h) [\\d]>\\_
socket = /home/oceanstar/workspace/mysql/mysql-data/3306/mysql.sock
default-character-set=utf8mb4

[mysqld]    # The MySQL server
port=3306
mysqlx_port = 33060
user=mysql
socket = /home/oceanstar/workspace/mysql/mysql-data/3306/mysql.sock
mysqlx_socket=/home/oceanstar/workspace/mysql/mysql-data/3306/mysqlx.sock
pid-file=/home/oceanstar/workspace/mysql/mysql-data/3306/mysql.pid
basedir=/usr/local/mysql
datadir=/home/oceanstar/workspace/mysql/mysql-data/3306/data
tmpdir=/home/oceanstar/workspace/mysql/mysql-data/3306/tmp
character_set_server=utf8mb4
default_storage_engine=InnoDB

########log settings########
log_error = /home/oceanstar/workspace/mysql/mysql-data/3306/error.log
slow_query_log = 1               #开启慢查询日志
slow_query_log_file = /home/oceanstar/workspace/mysql/mysql-data/3306/slow.log   #指定日志文件存放文件
long_query_time = 2                #慢查询日志超时时间
# log_queries_not_using_indexes = 0  #未使用索引的查询不被记录到慢查询日志中
log_slow_admin_statements = 1     #记录那些慢的optimize table,analyze table和alter table语句
log_slow_slave_statements = 1    #记录由Slave所产生的慢查询
#log_throttle_queries_not_using_indexes = 10
# min_examined_row_limit = 1000       #记录那些由于查找了多余1000次而引发的慢查询

general_log = 0                 # 不开启通用日志
general_log_file=/home/oceanstar/workspace/mysql/mysql-data/3306/general.log 


log_bin=/home/oceanstar/workspace/mysql/mysql-data/3306/binlog/binlog
max_binlog_size = 500M   #超过500
sync_binlog=5    # 每隔5次将binlog刷到磁盘满上去

#expire_logs_days = 30            # 日志30天过期
log_output = FILE
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43

3、将安装包拖入MySQL

$ pwd
/home/oceanstar/workspace/mysql
$ $ ls
mysql-8.0.29-linux-glibc2.12-x86_64.tar.xz  mysql-data
  • 1
  • 2
  • 3
  • 4

4、解压并将解压后的文件移动到/usr/local/mysql【此目录作为安装目录】下

$  tar -xvf mysql-8.0.29-linux-glibc2.12-x86_64.tar.xz
$  sudo mv mysql-8.0.29-linux-glibc2.12-x86_64 /usr/local/mysql-8.0.29
$  cd /usr/local/
$ $ ls
bin  etc  games  include  lib  man  mysql-8.0.29  sbin  share  src
  • 1
  • 2
  • 3
  • 4
  • 5

5、创建快捷链接

$ sudo ln -s mysql-8.0.29/ mysql
$ ls -l
......
lrwxrwxrwx 1 root      root        13 721 10:25 mysql -> mysql-8.0.29/
drwxrwxr-x 9 oceanstar oceanstar 4096 721 10:23 mysql-8.0.29

......

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

备注:删除快捷键的命令:unlink mysql

6、创建用户

$  sudo userdel mysql (删除原来的MySQL用户)
$  sudo groupadd mysql
$  sudo useradd -r -g mysql -s /bin/false mysql(因为我们只是想要所有权而不是登陆,因此使用-s /bin/false-r不设置密码)
$  cd /usr/local/mysql
  • 1
  • 2
  • 3
  • 4

5、创建mysql数据目录

$ mkdir mysql-files
$ sudo chown mysql:mysql mysql-files 【修改当前mysql-files目录拥有者为mysql用户】
$ sudo chmod 750 mysql-files
  • 1
  • 2
  • 3

6、下载libaio 【否则:bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory】

$ sudo apt-get install libaio1
  • 1

启动

操作

1、初始化并且启动Mysql

$  bin/mysqld --initialize --user=mysql 【initialize:生成随机密码,记住密码】
  • 1

在这里插入图片描述

$ bin/mysql_ssl_rsa_setup
$ bin/mysqld_safe --user=mysql & 【通过MySQL用户后台启动】
  • 1
  • 2

在这里插入图片描述
然后直接回车

2、将mysql的路径加入环境变量中

export PATH=/usr/local/mysql/bin:$PATH
  • 1

3、登陆MySQL并改密码

> mysql -uroot -p 【输入随机生成的密码】
> set password = '123456'; 【修改密码】
> exit
  • 1
  • 2
  • 3
  • 可能的错误:ImportError: libtinfo.so.5: cannot open shared object file: No such file or directory

  • 主要原因是 Ubuntu 升级后,系统动态库版本更新更名。PyTorch 在引入时调用动态库找不到对应的库进而报错。解决方案是设置一个软连接,让系统在查找低版本动态库时,自动打开高版本动态库。操作如下。

$  ls /lib/x86_64-linux-gnu/libtinfo.so.*
/lib/x86_64-linux-gnu/libtinfo.so.6  /lib/x86_64-linux-gnu/libtinfo.so.6.2
$ sudo ln -s /lib/x86_64-linux-gnu/libtinfo.so.6 /lib/x86_64-linux-gnu/libtinfo.so.5
  • 1
  • 2
  • 3
  • 如果不存在,则去一个好的ubunu中复制一个libtinfo.so.5,并放入 /lib/x86_64-linux-gnu 目录下:
  • 备注:libtinfo.so.5 百度云:https://pan.baidu.com/s/1SFza-Fa2-CVQh955XsJsZA

10、查看MySQL是否启动成功

>* ps -ef | grep mysqld
  • 1

在这里插入图片描述

  • 从上面可以看出, bin/mysqld_safe 命令启动实际上是调用了/usr/local/mysql/bin/mysqld
  • cat /usr/local/mysql/bin/mysqld_safe 可以看到这是一个脚本

2、简化启动

$ sudo cp support-files/mysql.server /etc/init.d/mysql.server
  • 1

此后,操作MySQL命令如下:

$ /etc/init.d/mysql.server start  // 启动MySQL
$ /etc/init.d/mysql.server stop   //关闭MySQL
  • 1
  • 2

理论:服务端

用来启动MySQL服务器的可执行文件有很多,而且大部分都位于MySQL的安装目录的bin目录下。包括

(1)mysqld

  • mysqld是一个可执行文件,他就是MySQL服务器程序
  • 运行这个可执行文件就可以直接启动一个MySQL服务器进程,但是这个可执行文件并不常用

(2)mysqld_safe

  • mysqld_safe 是一个启动脚本,它会间接调用mysqld并持续监控服务器的运行状态
    • 当服务器进程停止时,就会自动重启mysqld
    • 另外,它会将服务器程序的出错信息和其他诊断信息输出到错误日志,以便后期查找错误的原因

(3)mysql.server

  • mysql.server也是一个启动脚本,它会间接性的调用mysqld_safe
  • 在执行mysql.server时,在后面添加start参数就可以启动mysql服务器了,比如:
mysql.server start
  • 1
  • 这样,就可以简化调用

(4)mysqld_multi

  • mysqld_multi也是一个启动脚本。
  • 为什么要有这个脚本呢?一台计算机上可以运行多个服务器实例,通过mysqld_multi就可以启动后缀停止多个服务器进程以及报告它们的运行状态了

理论:客户端

在启动MySQL服务端之后,就可以用客户端来连接服务器了。

bin目录下也有很多客户端程序,我们要重点关注的是可执行文件mysql

启动这个可执行文件一般需要一些参数,格式如下:

mysql -h主机名 -u用户名 -p密码
  • 1

在这里插入图片描述
我们可以用多个客户端同时连接同一个服务器,客户端之间是互不影响的

怎么查看配置文件

1、查看mysql的配置文件读取顺序,下面两个命令之一都可以

$ bin/mysqld --verbose --help| grep -A 1 "Default options"
  • 1
$ bin/mysqld --help -vv | grep my.cnf
  • 1

在这里插入图片描述

  • mysql从这四个地方依次读取配置文件/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf,后读取的my.cnf中的配置,如果有相同项,会覆盖之前的配置。
  • 注意:原生的/etc/或者/etc/mysql/等目录下时没有my.cnf文件的,需要我们手动在/ect/等目录下创建一个my.cnf文件,然后写入配置项

还可以通过defaults-file指定默认配置文件【没有试过】

$ mysqld --help -vv | grep defaults-file
  • 1

在这里插入图片描述

2、更改配置文件之后记得重启数据库

$ /etc/init/mysql.server restart
  • 1
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/Cpp五条/article/detail/65128
推荐阅读
相关标签
  

闽ICP备14008679号