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
发现出错了,报错信息如下:
zifeiy@zifeiy-S1-Series:/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/
中生成的目录及文件如下:
zifeiy@zifeiy-S1-Series:/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汇报错:
zifeiy@zifeiy-S1-Series:/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服务器提供给我们的临时登陆密码:
zifeiy@zifeiy-S1-Series:/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 root@localhost: *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
重新登陆,发现登陆成功:
zifeiy@zifeiy-S1-Series:/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服务了。