您的位置:首页 > 数据库 > > 正文

mysql5.7.20非安装版教程(MySQL5.5 部署的一个问题)

更多 时间:2022-03-29 10:36:25 类别:数据库 浏览量:555

mysql5.7.20非安装版教程

MySQL5.5 部署的一个问题

MySQL部署

     目前公司部署MySQL是通过平台化操作的,周五的时候,平台暂时出了点儿问题,手上有个需求比较着急,就直接手动的部署了一下,由于好长时间没有部署环境了,竟然有些手生,这里把部署的步骤以及遇到的问题记录下来,希望对大家有所帮助。

1、一般情况下,部署有三种常用的方式,第一种是yum的方式,也就是rpm包,第二种是源码的方式,也就是source code,第三种是二进制包,也就是tar.gz格式的包,解压之后即可,我采用的是第三种方法,部署的MySQL版本是5.5.19版本。

2、首先来看下错误吧:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 启动服务的语句:
  • /usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysqld_safe --defaults=/data/mysql_4310/my.cnf &
  •  
  •  [Note] InnoDB: Waiting for purge to start
  •  [Note] InnoDB: Percona XtraDB (http://www.percona.com) 5.7.16-10 started; log sequence number 0
  •  [Note] Plugin 'FEDERATED' is disabled.
  • 20190621_11:25:41mysqld: Table 'mysql.plugin' doesn't exist
  •  [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
  •  [ERROR] unknown variable 'thread_concurrency=8'
  •  [ERROR] Aborting
  •     可以看到,一共报了两个错误,第一个是不能打开mysql.plugin这个表,第二个错误是参数错误,这个参数thread_concurrency无法识别。

        对于第二个问题,可以确认是配置文件里面的参数问题,因为我使用的是常规的5.7的配置文件,改了几个参数,所以这个参数很有可能是漏改了,改掉即可。主要是第一个问题,这个时候,我进行了下面的尝试。

    3、解决方式

    尝试1:尝试重新启动

    使用service mysql start的方法:

  • ?
  • 1
  • 2
  • [root]# service mysql_4310 start
  • Starting MySQL.....The server quit without updating PID fil[FAILED]/mysql_4310/tmp/mysql.pid).
  • 发现服务还是无法启动,错误日志的输出不变。

    尝试2:看到了错误后面的提示,运行mysql_upgrade方法

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • [root bin]# ./mysql_upgrade --protocol=tcp -P4310 -p
  • Enter password:
  • Looking for 'mysql' as: ./mysql
  • Looking for 'mysqlcheck' as: ./mysqlcheck
  • Running 'mysqlcheck' with connection arguments: '--protocol=tcp' '--port=4310'
  • ./mysqlcheck: Got error: 2003: Can't connect to MySQL server on 'localhost' (111) when trying to connect
  • 看来还是不行,这个时候我严重怀疑是配置文件的问题:。

    尝试3:从线上环境中搞来了一个mysql5.5的配置文件,然后重新替换新的配置文件,重新启动:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • [root@ mysql_4310]# /usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysqld_safe --defaults-file=/data/mysql_4310/my.cnf &
  • [1] 63529
  • [root@ mysql_4310]# 190621 11:51:37 mysqld_safe Logging to '/data/mysql_4310/log/hb30_web_wechat_answers-121_246.err'.
  • 190621 11:51:37 mysqld_safe Starting mysqld daemon with databases from /data/mysql_4310/data
  • 190621 11:51:40 mysqld_safe mysqld from pid file /data/mysql_4310/tmp/mysql.pid ended
  • 查看错误日志:

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 查看错误日志:
  • [Note] Plugin 'FEDERATED' is disabled.
  • -5.5.19-linux2.6-x86_64/bin/mysqld: Unknown error 1146
  • [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
  • InnoDB: The InnoDB memory heap is disabled
  • InnoDB: Mutexes and rw_locks use GCC atomic builtins
  • InnoDB: Compressed tables use zlib 1.2.3
  • InnoDB: Using Linux native AIO
  • InnoDB: Initializing buffer pool, size = 4.0G
  • InnoDB: Completed initialization of buffer pool
  • t specified data file /data/mysql_4310/ibdata1 did not exist:
  • tabase to be created!
  •  InnoDB: Setting file /data/mysql_4310/ibdata1 size to 1000 MB
  •  physically writes the file full: wait...
  •  in MB: 100 200 300 400 500 600 700 800 900 1000
  •  InnoDB: Data file /data/mysql_4310/ibdata2 did not exist: new to be created
  •  InnoDB: Setting file /data/mysql_4310/ibdata2 size to 100 MB
  •  physically writes the file full: wait...
  •  in MB: 100
  • og file /data/mysql_4310/innodblog/ib_logfile0 is of different size 0 1073741824 bytes
  • cified in the .cnf file 0 134217728 bytes!
  • [ERROR] Plugin 'InnoDB' init function returned error.
  • [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
  • [ERROR] Aborting
  • 发现最先面出现了新的错误,提示Innodb 初始化函数返回了错误,无法使用innodb存储引擎。到这里,我开始怀疑是不是初始化的时候,就有错误,导致服务不可用,于是想着重新初始化一遍数据字典,重新起服务,看看行不行。

    尝试4:重新初始化数据字典

       尝试使用initialize-insecure方法重新初始化,发现失败了。

  • ?
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • [root mysql_4310]# /usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysqld
  •  --initialize-insecure
  • --defaults-file=/data/mysql_4310/my.cnf
  • --datadir=/data/mysql_4310/data
  • --basedir=/usr/local/mysql-5.5.19-linux2.6-x86_64 &
  • [1] 7045
  •  
  •  
  •  
  • [1]+ Exit 2  /usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysqld
  • --initialize-insecure
  • --defaults-file=/data/mysql_4310/my.cnf
  • --datadir=/data/mysql_4310/data
  • --basedir=/usr/local/mysql-5.5.19-linux2.6-x86_64
  • 错误日志还是之前的日志,提示mysql.plugin表不存在,除此之外,还多了一行,如下:

  • ?
  • 1
  • [ERROR] /usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysqld: unknown option '--initialize-insecure'
  • 于是上官方文档上面查看了--initialize-insecure参数,发现这个参数在mysql5.5版本没有,然后5.5版本的是initialize参数,于是换成这个initialize参数,重新初始化,然后报错如下:

  • ?
  • 1
  • 2
  • 3
  • [root@ ]/usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysqld --defaults-file=/data/mysql_4310/my.cnf --datadir=/data/mysql_4310/data --basedir=/usr/local/mysql-5.5.19-linux2.6-x86_64 --initialize &
  •  
  • [1]+ Exit 2     /usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysqld --defaults-file=/data/mysql_4310/my.cnf --datadir=/data/mysql_4310/data --basedir=/usr/local/mysql-5.5.19-linux2.6-x86_64 --initialize
  • 此时,查看官方文档,发现MySQL5.5版本的初始化使用的是mysql_install_db命令而不是mysqld命令,而mysql_install_db这个工具不在/usr/local/mysql-5.5.19-linux2.6-x86_64/bin目录中,而在/usr/local/mysql-5.5.19-linux2.6-x86_64/scripts目录下面,于是通过cp命令将其拷贝到指定目录,然后进行初始化,如下:

  • ?
  • 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
  • [root@ mysql_4310]# /usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysql_install_db
  • --defaults-file=/data/mysql_4310/my.cnf
  • [root@ mysql_4310]# ll | grep install
  • [root@ mysql_4310]# /usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysql_install_db
  • --defaults-file=/data/mysql_4310/my.cnf
  • --datadir=/data/mysql_4310/data
  • --basedir=/usr/local/mysql-5.5.19-linu
  • [1] 16365
  • [root@ mysql_4310]#
  • Installing MySQL system tables...
  • OK
  • Filling help tables...
  • OK
  •  
  • To start mysqld at boot time you have to copy
  • support-files/mysql.server to the right place for your system
  •  
  • PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
  • To do so, start the server, then issue the following commands:
  •  
  • /usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysqladmin -u root password 'new-password'
  • /usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysqladmin -u root -h tk01-devt-mysql-7-200 password 'new-password'
  •  
  • Alternatively you can run:
  • /usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysql_secure_installation
  •  
  • which will also give you the option of removing the test
  • databases and anonymous user created by default. This is
  • strongly recommended for production servers.
  •  
  • See the manual for more instructions.
  •  
  • You can start the MySQL daemon with:
  • cd /usr/local/mysql-5.5.19-linux2.6-x86_64 ; /usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysqld_safe &
  •  
  • You can test the MySQL daemon with mysql-test-run.pl
  • cd /usr/local/mysql-5.5.19-linux2.6-x86_64/mysql-test ; perl mysql-test-run.pl
  •  
  • Please report any problems with the /usr/local/mysql-5.5.19-linux2.6-x86_64/scripts/mysqlbug script!
  •  
  •  
  • [1]+ Done     /usr/local/mysql-5.5.19-linux2.6-x86_64/bin/mysql_install_db --defaults-file=/data/mysql_4310/my.cnf --datadir=/data/mysql_4310/data --basedir=/usr/local/mysql-5.5.19-linux2.6-x86_64
  • 结果成功。

    总结如下:

    1、MySQL5.5版本的初始化使用mysql_install_db工具,而不是mysqld工具

    2、MySQL5.5版本的初始化使用--initialize参数

    以上就是MySQL5.5 部署的一个问题的详细内容,更多关于MySQL 部署的资料请关注开心学习网其它相关文章!

    原文链接:https://cloud.tencent.com/developer/article/1533427

    标签:mysql 部署
    您可能感兴趣