如何在Debian 7上安装Mysql 5.6

我试图在Debian 7 Wheezy上安装Mysql 5.6

安装mysql数据库/文件夹后, /var/lib/mysql/mysql为空

 # groupadd mysql # useradd -r -g mysql mysql # apt-get install libaio1 # wget http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.6.12-debian6.0-x86_64.deb # dpkg -i mysql-5.6.12-debian6.0-x86_64.deb # cd /usr/local # ln -s /opt/mysql/server-5.6 mysql # cd mysql # scripts/mysql_install_db --user=mysql --datadir=/var/lib/mysql # rm /opt/mysql/server-5.6/my.cnf # rm /etc/mysql/my.cnf # ln -s /var/ini/my.cnf /opt/mysql/server-5.6/my.cnf # chown -R root . # chown -R mysql /var/lib/mysql # cp support-files/mysql.server /etc/init.d/mysql # alias mysql=/opt/mysql/server-5.6/bin/mysql # alias mysqladmin=/opt/mysql/server-5.6/bin/mysqladmin # service mysql start # update-rc.d mysql defaults 

my.cnf中

 # # The MySQL database server configuration file. # # You can copy this to one of: # - "/etc/mysql/my.cnf" to set global options, # - "~/.my.cnf" to set user-specific options. # # One can use all long options that the program supports. # Run program with --help to get a list of available options and with # --print-defaults to see which it would actually understand and use. # # For explanations see # http://dev.mysql.com/doc/mysql/en/server-system-variables.html # This will be passed to all mysql clients # It has been reported that passwords should be enclosed with ticks/quotes # escpecially if they contain "#" chars... # Remember to edit /etc/mysql/debian.cnf when changing the socket location. [client] port = 3306 socket = /var/run/mysqld/mysqld.sock # Here is entries for some specific programs # The following values assume you have at least 32M ram # This was formally known as [safe_mysqld]. Both versions are currently parsed. [mysqld_safe] socket = /var/run/mysqld/mysqld.sock nice = 0 [mysqld] # # * Basic Settings # user = mysql pid-file = /var/run/mysqld/mysqld.pid socket = /var/run/mysqld/mysqld.sock port = 3306 basedir = /usr/local/mysql datadir = /var/lib/mysql tmpdir = /tmp lc-messages-dir = /opt/mysql/server-5.6/share/english skip-external-locking # # Instead of skip-networking the default is now to listen only on # localhost which is more compatible and is not less secure. bind-address = 127.0.0.1 # # * Fine Tuning # key_buffer = 16M max_allowed_packet = 16M thread_stack = 192K thread_cache_size = 8 # This replaces the startup script and checks MyISAM tables if needed # the first time they are touched myisam-recover = BACKUP #max_connections = 100 #table_cache = 64 #thread_concurrency = 10 # # * Query Cache Configuration # query_cache_limit = 1M query_cache_size = 16M # # * Logging and Replication # # Both location gets rotated by the cronjob. # Be aware that this log type is a performance killer. # As of 5.1 you can enable the log at runtime! #general_log_file = /var/log/mysql/mysql.log #general_log = 1 # # Error logging goes to syslog due to /etc/mysql/conf.d/mysqld_safe_syslog.cnf. # # Here you can see queries with especially long duration #log_slow_queries = /var/log/mysql/mysql-slow.log #long_query_time = 2 #log-queries-not-using-indexes # # The following can be used as easy to replay backup logs or for replication. # note: if you are setting up a replication slave, see README.Debian about # other settings you may need to change. #server-id = 1 #log_bin = /var/log/mysql/mysql-bin.log expire_logs_days = 10 max_binlog_size = 100M #binlog_do_db = include_database_name #binlog_ignore_db = include_database_name # # * InnoDB # # InnoDB is enabled by default with a 10MB datafile in /var/lib/mysql/. # Read the manual for more InnoDB related options. There are many! # # * Security Features # # Read the manual, too, if you want chroot! # chroot = /var/lib/mysql/ # # For generating SSL certificates I recommend the OpenSSL GUI "tinyca". # # ssl-ca=/etc/mysql/cacert.pem # ssl-cert=/etc/mysql/server-cert.pem # ssl-key=/etc/mysql/server-key.pem [mysqldump] quick quote-names max_allowed_packet = 16M [mysql] #no-auto-rehash # faster start of mysql but no tab completition [isamchk] key_buffer = 16M # # * IMPORTANT: Additional settings that can override those from this file! # The files must end with '.cnf', otherwise they'll be ignored. # !includedir /etc/mysql/conf.d/ 

错误

 130619 14:28:13 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql 2013-06-19 14:28:14 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2013-06-19 14:28:14 6582 [Warning] Using pre 5.5 semantics to load error messages from /opt/mysql/server-5.6/share/english/. 2013-06-19 14:28:14 6582 [Warning] If this is not intended, refer to the documentation for valid usage of --lc-messages-dir and --language parameters. 2013-06-19 14:28:14 6582 [Note] Plugin 'FEDERATED' is disabled. /usr/local/mysql/bin/mysqld: Table 'mysql.plugin' doesn't exist 2013-06-19 14:28:14 6582 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it. 2013-06-19 14:28:14 6582 [Note] InnoDB: The InnoDB memory heap is disabled 2013-06-19 14:28:14 6582 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins 2013-06-19 14:28:14 6582 [Note] InnoDB: Compressed tables use zlib 1.2.3 2013-06-19 14:28:14 6582 [Note] InnoDB: Using Linux native AIO 2013-06-19 14:28:14 6582 [Note] InnoDB: Not using CPU crc32 instructions 2013-06-19 14:28:14 6582 [Note] InnoDB: Initializing buffer pool, size = 128.0M 2013-06-19 14:28:14 6582 [Note] InnoDB: Completed initialization of buffer pool 2013-06-19 14:28:14 6582 [Note] InnoDB: Highest supported file format is Barracuda. 2013-06-19 14:28:14 6582 [Note] InnoDB: 128 rollback segment(s) are active. 2013-06-19 14:28:14 6582 [Note] InnoDB: Waiting for purge to start 2013-06-19 14:28:14 6582 [Note] InnoDB: 5.6.12 started; log sequence number 1600637 2013-06-19 14:28:14 6582 [Note] Server hostname (bind-address): '127.0.0.1'; port: 3306 2013-06-19 14:28:14 6582 [Note] - '127.0.0.1' resolves to '127.0.0.1'; 2013-06-19 14:28:14 6582 [Note] Server socket created on IP: '127.0.0.1'. 2013-06-19 14:28:14 6582 [ERROR] Fatal error: Can't open and lock privilege tables: Table 'mysql.user' doesn't exist 130619 14:28:14 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended 

我正在使用Ubuntu(基于Debian),并成功地遵循非常类似的步骤。 但是我下载了debian软件包,而不是二进制文件:
http://downloads.mysql.com/archives/mysql-5.6/mysql-5.6.11-debian6.0-x86_64.deb

然后我跑了:

 sudo apt-get install libaio1 sudo groupadd mysql sudo useradd -r -g mysql mysql wget -O mysql-5.6.11-debian6.0-x86_64.deb \ http://downloads.mysql.com/archives/mysql-5.6/mysql-5.6.11-debian6.0-x86_64.deb sudo dpkg -i mysql-5.6.11-debian6.0-x86_64.deb cd /usr/local sudo ln -s /opt/mysql/server-5.6 mysql cd mysql sudo scripts/mysql_install_db --user=mysql sudo chown -R root . sudo chown -R mysql data sudo cp support-files/mysql.server /etc/init.d/mysql sudo service mysql start sudo ./bin/mysql_secure_installation 

最后一步是可选的。

编辑

我刚刚下载了你使用的.tar.gz ,这是源代码。 所以基本上你需要安装CMAKE并自己构buildMySQL。 我在2周前做了这个,并没有那么困难(如果你之前已经在linux上构build过东西了:)),但是我怀疑你需要经历这个负担。 您只需要找出使用.deb安装报告的错误,并在此共享,以便我们提供帮助。

UPDATE

对于启动MySQL的问题,在/etc/init.d/mysql文件(在上面的步骤中从/opt/mysql/server-5.6/support-files/mysql.server复制)在第48-49行周围改变空

 basedir= datadir= 

 basedir=/usr/local/mysql datadir=/usr/local/mysql/data 

(或者任何需要的path)

请注意,您可能需要添加/etc/my.cnf的[client]和[mysqld]部分(这个debian软件包预计在/ etc或/opt/mysql/server-5.6而不是/ etc / mysql中)

 socket = /var/run/mysqld/mysqld.sock 

或者您可能有问题从PHP或其他编程语言连接。

我build议使用昨天推出的官方套餐: http :

Debian 7作为一个支持平台。 包格式也比.debs更像debian

使用dotdeb.org存储库,及时发布高质量的软件包。

https://www.dotdeb.org/2015/07/04/mysql-5-6-25-for-wheezy/

简单而高效:

 # Update the repo list, execute : wget http://repo.mysql.com/mysql-apt-config_0.2.1-1debian7_all.deb dpkg -i mysql-apt-config_0.2.1-1debian7_all.deb # Install apt-get update apt-get install mysql-server-5.6