mysql下载地址:https://dev.mysql.com/downloads/mysql/
(一)删除老版本的MySQL
在安装前要先确定系统是否已经安装了其他版本的MySQL,如已安装其他版本的MySQL,需先删除后再安装新版本。经本文亲测,采用如下方式删除老版本的MySQL或MySQL残留文件作为方便。
1. 执行yum命令,删除MySQL的lib库,服务文件
yum remove mysql mysql-server mysql-libs mysql-server;
2. 执行find命令,查找MySQL的残留文件,然后运行“rm -rf 文件名”删除残留的MySQL文件
find / -name mysql
(二)RPM格式安装MySQL
当前,MySQL的最新版本为:5.6.21,从官网下载MySQL的rpm安装包,解压后有如下六个文件:
MySQL-client-5.6.21-1.linux_glibc2.5.x86_64.rpm #MySQL客户端程序 MySQL-devel-5.6.21-1.linux_glibc2.5.x86_64.rpm #MySQL的库和头文件 MySQL-embedded-5.6.21-1.linux_glibc2.5.x86_64.rpm #MySQL的嵌入式程序 MySQL-server-5.6.21-1.linux_glibc2.5.x86_64.rpm #MySQL服务端程序 MySQL-shared-5.6.21-1.linux_glibc2.5.x86_64.rpm #MySQL的共享库 MySQL-test-5.6.21-1.linux_glibc2.5.x86_64.rpm #MySQL的测试组件
一般对于开发而言,我们只需要下面三个文件就可以。
MySQL-devel-5.6.21-1.linux_glibc2.5.x86_64.rpm #MySQL的库和头文件 MySQL-server-5.6.21-1.linux_glibc2.5.x86_64.rpm #MySQL服务端程序 MySQL-devel-5.6.21-1.linux_glibc2.5.x86_64.rpm #MySQL的库和头文件
1. 在重新进行安装之前,为确保万无一失,我们还是再确认一下系统中是否有MySQL极其相关的RPM安装包。如果有,则先删除。
rpm -qa | grep -i mysql
执行完上述命令后,返回空数据,则可进行第二步。否则,执行下面的命令删除MySQL的相关包文件。
yum -y remove mysql-libs*
2. 将前面提到的三个MySQL安装文件,拷贝到服务器,然后执行下述安装命令
rpm -ivh MySQL-server-5.6.21-1.linux_glibc2.5.x86_64.rpm rpm -ivh MySQL-devel-5.6.21-1.linux_glibc2.5.x86_64.rpm rpm -ivh MySQL-client-5.6.21-1.linux_glibc2.5.x86_64.rpm
debug 如下:
[root@VM_32_234_centos tools]# rpm -ivh MySQL-server-5.6.21-1.linux_glibc2.5.x86_64.rpm Preparing... ########################################### [100%] 1:MySQL-server rpm -ivh MySQL-devel-5.6.21-1.linux_glibc2.5.x86_64.rpm rpm -ivh MySQL-client-5.6.21-1.linux_glibc2.5.x86_64.rpm################# ########################################### [100%] 2014-09-29 15:01:50 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2014-09-29 15:01:50 30994 [Note] InnoDB: Using atomics to ref count buffer pool pages 2014-09-29 15:01:50 30994 [Note] InnoDB: The InnoDB memory heap is disabled 2014-09-29 15:01:50 30994 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins 2014-09-29 15:01:50 30994 [Note] InnoDB: Memory barrier is not used 2014-09-29 15:01:50 30994 [Note] InnoDB: Compressed tables use zlib 1.2.3 2014-09-29 15:01:50 30994 [Note] InnoDB: Using Linux native AIO 2014-09-29 15:01:50 30994 [Note] InnoDB: Using CPU crc32 instructions 2014-09-29 15:01:50 30994 [Note] InnoDB: Initializing buffer pool, size = 128.0M 2014-09-29 15:01:50 30994 [Note] InnoDB: Completed initialization of buffer pool 2014-09-29 15:01:50 30994 [Note] InnoDB: The first specified data file ./ibdata1 did not exist: a new database to be created! 2014-09-29 15:01:50 30994 [Note] InnoDB: Setting file ./ibdata1 size to 12 MB 2014-09-29 15:01:50 30994 [Note] InnoDB: Database physically writes the file full: wait... 2014-09-29 15:01:51 30994 [Note] InnoDB: Setting log file ./ib_logfile101 size to 48 MB 2014-09-29 15:01:52 30994 [Note] InnoDB: Setting log file ./ib_logfile1 size to 48 MB 2014-09-29 15:01:52 30994 [Note] InnoDB: Renaming log file ./ib_logfile101 to ./ib_logfile0 2014-09-29 15:01:52 30994 [Warning] InnoDB: New log files created, LSN=45781 2014-09-29 15:01:52 30994 [Note] InnoDB: Doublewrite buffer not found: creating new 2014-09-29 15:01:52 30994 [Note] InnoDB: Doublewrite buffer created 2014-09-29 15:01:52 30994 [Note] InnoDB: 128 rollback segment(s) are active. 2014-09-29 15:01:52 30994 [Warning] InnoDB: Creating foreign key constraint system tables. 2014-09-29 15:01:52 30994 [Note] InnoDB: Foreign key constraint system tables created 2014-09-29 15:01:52 30994 [Note] InnoDB: Creating tablespace and datafile system tables. 2014-09-29 15:01:52 30994 [Note] InnoDB: Tablespace and datafile system tables created. 2014-09-29 15:01:52 30994 [Note] InnoDB: Waiting for purge to start 2014-09-29 15:01:52 30994 [Note] InnoDB: 5.6.21 started; log sequence number 0 A random root password has been set. You will find it in '/root/.mysql_secret'. 2014-09-29 15:01:53 30994 [Note] Binlog end 2014-09-29 15:01:53 30994 [Note] InnoDB: FTS optimize thread exiting. 2014-09-29 15:01:53 30994 [Note] InnoDB: Starting shutdown... 2014-09-29 15:01:54 30994 [Note] InnoDB: Shutdown completed; log sequence number 1625977 2014-09-29 15:01:54 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2014-09-29 15:01:54 31016 [Note] InnoDB: Using atomics to ref count buffer pool pages 2014-09-29 15:01:54 31016 [Note] InnoDB: The InnoDB memory heap is disabled 2014-09-29 15:01:54 31016 [Note] InnoDB: Mutexes and rw_locks use GCC atomic builtins 2014-09-29 15:01:54 31016 [Note] InnoDB: Memory barrier is not used 2014-09-29 15:01:54 31016 [Note] InnoDB: Compressed tables use zlib 1.2.3 2014-09-29 15:01:54 31016 [Note] InnoDB: Using Linux native AIO 2014-09-29 15:01:54 31016 [Note] InnoDB: Using CPU crc32 instructions 2014-09-29 15:01:54 31016 [Note] InnoDB: Initializing buffer pool, size = 128.0M 2014-09-29 15:01:54 31016 [Note] InnoDB: Completed initialization of buffer pool 2014-09-29 15:01:54 31016 [Note] InnoDB: Highest supported file format is Barracuda. 2014-09-29 15:01:54 31016 [Note] InnoDB: 128 rollback segment(s) are active. 2014-09-29 15:01:54 31016 [Note] InnoDB: Waiting for purge to start 2014-09-29 15:01:54 31016 [Note] InnoDB: 5.6.21 started; log sequence number 1625977 2014-09-29 15:01:54 31016 [Note] Binlog end 2014-09-29 15:01:54 31016 [Note] InnoDB: FTS optimize thread exiting. 2014-09-29 15:01:54 31016 [Note] InnoDB: Starting shutdown... 2014-09-29 15:01:56 31016 [Note] InnoDB: Shutdown completed; log sequence number 1625987 A RANDOM PASSWORD HAS BEEN SET FOR THE MySQL root USER ! You will find that password in '/root/.mysql_secret'. You must change that password on your first connect, no other statement but 'SET PASSWORD' will be accepted. See the manual for the semantics of the 'password expired' flag. Also, the account for the anonymous user has been removed. In addition, you can run: /usr/bin/mysql_secure_installation which will also give you the option of removing the test database. This is strongly recommended for production servers. See the manual for more instructions. Please report any problems at http://bugs.mysql.com/ The latest information about MySQL is available on the web at http://www.mysql.com Support MySQL by buying support/licenses at http://shop.mysql.com New default config file was created as /usr/my.cnf and will be used by default by the server when you start it. You may edit this file to change server settings
[root@VM_32_234_centos tools]# rpm -ivh MySQL-devel-5.6.21-1.linux_glibc2.5.x86_64.rpm Preparing... ########################################### [100%] 1:MySQL-devel ########################################### [100%]
[root@VM_32_234_centos tools]# rpm -ivh MySQL-client-5.6.21-1.linux_glibc2.5.x86_64.rpm Preparing... ########################################### [100%] 1:MySQL-client ########################################### [100%] [root@VM_32_234_centos tools]#
上述三个命令在执行时,只有第一个命令执行的时间稍微长些,后面两个命令运行速度很快。
3.执行下述命令,将MySQL的配置文件拷贝到/etc目录下。
cp /usr/share/mysql/my-default.cnf /etc/my.cnf
4.分别运行下述命令,初始化MySQL及设置密码。
/usr/bin/mysql_install_db #初始化MySQL service mysql start #启动MySQL cat /root/.mysql_secret #查看root账号的初始密码,会出现下述所示信息
如:
[root@VM_32_234_centos storage]# service mysql start Starting MySQL. SUCCESS! [root@VM_32_234_centos storage]# cat /root/.mysql_secret # The random password set for the root user at Mon Sep 29 15:01:52 2014 (local time): PENFgcgkI8UnIKaE
[root@VM_32_234_centos storage]# mysql -u root -pPENFgcgkI8UnIKaE Warning: Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 4 Server version: 5.6.21 Copyright (c) 2000, 2014, 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>
-- set password=password('123456'); #更改MySQL密码
mysql> set password=password('123456'); Query OK, 0 rows affected (0.00 sec)
5.设置开机启动
chkconfig mysql on
[root@VM_32_234_centos storage]# chkconfig mysql on [root@VM_32_234_centos storage]# chkconfig --list | grep mysql mysql 0:off 1:off 2:on 3:on 4:on 5:on 6:off
上面打印出来的内容中,2~5为on就是开机启动了。
6.修改/etc/my.cnf
设置MySQL的字符集,配置MySQL表明不区分大小写(默认情况下,MySQL对表名区分大小写,列名不区分大小写)。下面加入如下内容:
[client] default-character-set=utf8 [mysqld] character_set_server=utf8 character_set_client=utf8 collation-server=utf8_general_ci lower_case_table_names=1 max_connections=1000
7.MySQL的默认文件路径
/var/lib/mysql/ #数据库目录 /usr/share/mysql #配置文件目录 /usr/bin #相关命令目录 #启动脚本
8.修改数据文件路径
1.修改 /etc/my.cnf 文件
vi /etc/my.cnf
# For advice on how to change settings please see # http://dev.mysql.com/doc/refman/5.6/en/server-configuration-defaults.html # *** DO NOT EDIT THIS FILE. It's a template which will be copied to the # *** default location during install, and will be replaced if you # *** upgrade to a newer version of MySQL. [mysqld] # Remove leading # and set to the amount of RAM for the most important data # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%. # innodb_buffer_pool_size = 128M # Remove leading # to turn on a very important data integrity option: logging # changes to the binary log between backups. # log_bin # These are commonly set, remove the # and set as required. #basedir = /storage/server/mysql-5.6.21-1/ datadir = /storage/server/mysql-5.6.21-1/data port = 3306 server_id = 2 socket = /storage/server/mysql-5.6.21-1/data/mysql.sock pid-file =/storage/server/mysql-5.6.21-1/data/VM_32_234_centos.pid # Remove leading # to set options mainly useful for reporting servers. # The server defaults are faster for transactions and fast SELECTs. # Adjust sizes as needed, experiment to find the optimal values. # join_buffer_size = 128M # sort_buffer_size = 2M # read_rnd_buffer_size = 2M sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
复制文件 /var/lib/mysql/ 到 /storage/server/mysql-5.6.21-1/data/
cp -R /var/lib/mysql/* /storage/server/mysql-5.6.21-1/data/
9.重启MySQL
# service mysql restart Shutting down MySQL.. SUCCESS! Starting MySQL. SUCCESS!
(三)CentOS7安装MySQL冲突和问题解决小结
问题1:
[root@Tony_ts_tian developer]# rpm -ivh MySQL-server-5.5.46-1.el6.x86_64.rpm warning: MySQL-server-5.5.46-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY Preparing... ########################################### [100%] 1:MySQL-server ########################################### [100%]
解决1:
从 rpm版本 4.1 开始,在安装或升级软件包时会检查软件包的签名。如果签名校验失败,你就会看到类似以上的错误消息:
注:新的、只针对文件头的签名:错误消息:error: Header V3 DSA signature: BAD, key ID 0352860f
注:没有安装合适的钥匙来校验签名,消息中就会包含 NOKEY:错误消息:warning: V3 DSA signature: NOKEY, key ID 0352860f
由于yum安装了旧版本的GPG keys造成的,解决办法就是(设置后无效):
rpm --import /etc/pki/rpm-gpg/RPM*
此签名是检验安装包的有效性和安装性的。我直接跳过(安装时不校验,加--nosignature参数)检验安装:
[root@localhost install-files]# rpm -ivh MySQL-server-5.6.27-1.el6.x86_64.rpm --nosignature
问题2:
[root@sh158-xen data]#rpm -ivh MySQL-server-5.5.31-2.el6.i686.rpm error: Failed dependencies: libaio.so.1 is needed by MySQL-server-5.5.31-2.el6.i686 libaio.so.1(LIBAIO_0.1) is needed by MySQL-server-5.5.31-2.el6.i686 libaio.so.1(LIBAIO_0.4) is needed by MySQL-server-5.5.31-2.el6.i686
或者
warning: mysql-community-server-5.7.9-1.el6.x86_64.rpm: Header V3 DSA/SHA1 Signature, key ID 5072e1f5: NOKEY error: Failed dependencies: libnuma.so.1()(64bit) is needed by mysql-community-server-5.7.9-1.el6.x86_64 libnuma.so.1(libnuma_1.1)(64bit) is needed by mysql-community-server-5.7.9-1.el6.x86_64 libnuma.so.1(libnuma_1.2)(64bit) is needed by mysql-community-server-5.7.9-1.el6.x86_64
解决2:
yum install numactl
或
yum install libaio.so.1 libnuma.so.1
以上内容参考至:
http://www.cnblogs.com/mjorcen/p/4000371.html
http://blog.csdn.net/typa01_kk/article/details/49059729
配置远程访问:
https://www.jianshu.com/p/865a2df52590
https://jingyan.baidu.com/article/363872ec3263236e4ba16f07.html
注意:本文归作者所有,未经作者允许,不得转载