ubuntu18.04手动安装二进制MySQL8.0

Posted <・)))><<

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ubuntu18.04手动安装二进制MySQL8.0相关的知识,希望对你有一定的参考价值。

wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz
tar xvJf mysql-8.0.13-linux-glibc2.12-x86_64.tar.xz
sudo mv mysql-8.0.13-linux-glibc2.12-x86_64 /var/mysql

然后新建一个文件/var/mysql/data_3306/my.cnf

[mysqld]
port=3306
datadir=/var/mysql/data_3306
log_error=/var/mysql/data_3306/error.log
basedir=/var/mysql

然后运行如下命令启动MySQL服务:

var/mysql/bin/mysqld --defaults-file=/var/mysql/data_3306/my.cnf --initialize --user=mysql

发现出错了,报错信息如下:

[email protected]:/var/mysql/data_3306$ cat error.log 
2019-01-14T10:59:46.054629Z 0 [Warning] [MY-010139] [Server] Changed limits: max_open_files: 1024 (requested 8161)
2019-01-14T10:59:46.054690Z 0 [Warning] [MY-010142] [Server] Changed limits: table_open_cache: 431 (requested 4000)
2019-01-14T10:59:46.054946Z 0 [System] [MY-013169] [Server] /var/mysql/bin/mysqld (mysqld 8.0.13) initializing of server in progress as process 3621
2019-01-14T10:59:46.056585Z 0 [ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.
2019-01-14T10:59:46.056652Z 0 [ERROR] [MY-013236] [Server] Newly created data directory /var/mysql/data_3306/ is unusable. You can safely remove it.
2019-01-14T10:59:46.056661Z 0 [ERROR] [MY-010119] [Server] Aborting
2019-01-14T10:59:46.056743Z 0 [System] [MY-010910] [Server] /var/mysql/bin/mysqld: Shutdown complete (mysqld 8.0.13)  MySQL Community Server - GPL.
2019-01-14T11:02:07.365206Z 0 [Warning] [MY-010139] [Server] Changed limits: max_open_files: 1024 (requested 8161)
2019-01-14T11:02:07.365266Z 0 [Warning] [MY-010142] [Server] Changed limits: table_open_cache: 431 (requested 4000)
2019-01-14T11:02:07.365524Z 0 [System] [MY-013169] [Server] /var/mysql/bin/mysqld (mysqld 8.0.13) initializing of server in progress as process 3660
2019-01-14T11:02:07.367698Z 0 [ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.
2019-01-14T11:02:07.367779Z 0 [ERROR] [MY-013236] [Server] Newly created data directory /var/mysql/data_3306/ is unusable. You can safely remove it.
2019-01-14T11:02:07.367797Z 0 [ERROR] [MY-010119] [Server] Aborting
2019-01-14T11:02:07.368023Z 0 [System] [MY-010910] [Server] /var/mysql/bin/mysqld: Shutdown complete (mysqld 8.0.13)  MySQL Community Server - GPL.
2019-01-14T11:02:25.091876Z 0 [Warning] [MY-010139] [Server] Changed limits: max_open_files: 1024 (requested 8161)
2019-01-14T11:02:25.091947Z 0 [Warning] [MY-010142] [Server] Changed limits: table_open_cache: 431 (requested 4000)
2019-01-14T11:02:25.092216Z 0 [System] [MY-013169] [Server] /var/mysql/bin/mysqld (mysqld 8.0.13) initializing of server in progress as process 3661
2019-01-14T11:02:25.093893Z 0 [ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.
2019-01-14T11:02:25.093941Z 0 [ERROR] [MY-013236] [Server] Newly created data directory /var/mysql/data_3306/ is unusable. You can safely remove it.
2019-01-14T11:02:25.093951Z 0 [ERROR] [MY-010119] [Server] Aborting
2019-01-14T11:02:25.094040Z 0 [System] [MY-010910] [Server] /var/mysql/bin/mysqld: Shutdown complete (mysqld 8.0.13)  MySQL Community Server - GPL.
2019-01-14T11:03:34.555652Z 0 [Warning] [MY-010139] [Server] Changed limits: max_open_files: 1024 (requested 8161)
2019-01-14T11:03:34.555710Z 0 [Warning] [MY-010142] [Server] Changed limits: table_open_cache: 431 (requested 4000)
2019-01-14T11:03:34.555964Z 0 [System] [MY-013169] [Server] /var/mysql/bin/mysqld (mysqld 8.0.13) initializing of server in progress as process 3676
2019-01-14T11:03:34.557598Z 0 [ERROR] [MY-010457] [Server] --initialize specified but the data directory has files in it. Aborting.
2019-01-14T11:03:34.557644Z 0 [ERROR] [MY-013236] [Server] Newly created data directory /var/mysql/data_3306/ is unusable. You can safely remove it.
2019-01-14T11:03:34.557654Z 0 [ERROR] [MY-010119] [Server] Aborting
2019-01-14T11:03:34.557738Z 0 [System] [MY-010910] [Server] /var/mysql/bin/mysqld: Shutdown complete (mysqld 8.0.13)  MySQL Community Server - GPL.

发现是因为datadir对应的目录里面有文件的原因造成的,修改一下datadir参数,my.cnf信息如下:

[mysqld]
port=3306
datadir=/var/mysql/data_3306
log_error=/var/mysql/data_3306/error.log
basedir=/var/mysql

发现运行成功(通过echo $?判断)。

然后启动mysqld服务:

var/mysql/bin/mysqld --defaults-file=/var/mysql/data_3306/my.cnf --user=mysql

执行之后,在目录/var/mysql/data_3306/data/中生成的目录及文件如下:

[email protected]:/var/mysql/data_3306$ ls -l /var/mysql/data_3306/data/
总用量 155712
-rw-r----- 1 zifeiy zifeiy       56 1月  14 19:06  auto.cnf
-rw------- 1 zifeiy zifeiy     1676 1月  14 19:06  ca-key.pem
-rw-r--r-- 1 zifeiy zifeiy     1112 1月  14 19:06  ca.pem
-rw-r--r-- 1 zifeiy zifeiy     1112 1月  14 19:06  client-cert.pem
-rw------- 1 zifeiy zifeiy     1676 1月  14 19:06  client-key.pem
-rw-r----- 1 zifeiy zifeiy     5785 1月  14 19:06  ib_buffer_pool
-rw-r----- 1 zifeiy zifeiy 12582912 1月  14 19:06  ibdata1
-rw-r----- 1 zifeiy zifeiy 50331648 1月  14 19:06  ib_logfile0
-rw-r----- 1 zifeiy zifeiy 50331648 1月  14 19:06  ib_logfile1
drwxr-x--- 2 zifeiy zifeiy     4096 1月  14 19:06 ‘#innodb_temp‘
drwxr-x--- 2 zifeiy zifeiy     4096 1月  14 19:06  mysql
-rw-r----- 1 zifeiy zifeiy 25165824 1月  14 19:06  mysql.ibd
drwxr-x--- 2 zifeiy zifeiy     4096 1月  14 19:06  performance_schema
-rw------- 1 zifeiy zifeiy     1676 1月  14 19:06  private_key.pem
-rw-r--r-- 1 zifeiy zifeiy      452 1月  14 19:06  public_key.pem
-rw-r--r-- 1 zifeiy zifeiy     1112 1月  14 19:06  server-cert.pem
-rw------- 1 zifeiy zifeiy     1676 1月  14 19:06  server-key.pem
drwxr-x--- 2 zifeiy zifeiy     4096 1月  14 19:06  sys
-rw-r----- 1 zifeiy zifeiy 10485760 1月  14 19:06  undo_001
-rw-r----- 1 zifeiy zifeiy 10485760 1月  14 19:06  undo_002

一开始使用

/var/mysql/bin/mysql -uroot -h127.0.0.1 -P3306

登陆MySQL汇报错:

[email protected]:/var/mysql/data_3306$ /var/mysql/bin/mysql -uroot -h127.0.0.1 -P3306
ERROR 2003 (HY000): Can‘t connect to MySQL server on ‘127.0.0.1‘ (111)

但是我们可以在/var/mysql/data_3306/error.log中看到MySQL服务器提供给我们的临时登陆密码:

[email protected]:/var/mysql/data_3306$ tail -n 2 /var/mysql/data_3306/error.log 
2019-01-14T11:06:47.744852Z 5 [Note] [MY-010454] [Server] A temporary password is generated for [email protected]: *C4gk*8%3lwf
2019-01-14T11:06:48.411733Z 0 [System] [MY-013170] [Server] /var/mysql/bin/mysqld (mysqld 8.0.13) initializing of server has completed

重新登陆,发现登陆成功:

[email protected]:/var/mysql/bin$ ./mysql -uroot -h127.0.0.1 -P3306 -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 9
Server version: 8.0.13

Copyright (c) 2000, 2018, 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> 

赶快修改密码(我这里改成password):

alter user ‘root‘@‘localhost‘ identified by ‘password‘;

为了方便,可以新建一个脚本文件~/start_mysqld.sh,如下:

echo "/var/mysql/bin/mysqld --defaults-file=/var/mysql/data_3306/my.cnf --user=mysql" > ~/start_mysqld.sh
chmod a+x ~/start_mysqld.sh

以后就可以通过bash ~/start_mysqld.sh来运行mysqld服务了。

以上是关于ubuntu18.04手动安装二进制MySQL8.0的主要内容,如果未能解决你的问题,请参考以下文章

Ubuntu 下构建mysql8.0 主从复制

Ubuntu18.04 安装mysql8.0

Ubuntu18.04 安装mysql8.0.11

Ubuntu18.04安装MySQL8.0

ubuntu18.04安装mysql8.0

Armbian-Ubuntu18.04用docker安装mysql8