进入https://dev.mysql.com/downloads/repo/yum/,下载RedHat Enterprise系统对应版本包。
点击链接Centos 6 直接下载。
点击链接Centos 7 直接下载。
centos 6 旧版本下载
官方文档:https://dev.mysql.com/doc/mysql-yum-repo-quick-guide/en/
1、下载完成后将Yum库导入到你的本地:
centos 6
sudo yum localinstall mysql-community-release-el6-*.noarch.rpm [root@localhost ~]# ls -la /etc/yum.repos.d/mysql-community* -rw-r--r-- 1 root root 1209 2013/12/02 19:15:56 /etc/yum.repos.d/mysql-community.repo -rw-r--r-- 1 root root 1060 2013/12/02 19:15:56 /etc/yum.repos.d/mysql-community-source.repo
centos 7
sudo yum localinstall mysql80-community-release-el7-3.noarch.rpm [root@localhost ~]# ls -la /etc/yum.repos.d/mysql-community* -rw-r--r-- 1 root root 2076 2019/04/25 01:35:31 /etc/yum.repos.d/mysql-community.repo -rw-r--r-- 1 root root 2108 2019/04/25 01:35:31 /etc/yum.repos.d/mysql-community-source.repo
2、这个Yum库包含了MySQLServer,MySQL工作台管理工具以及ODBC驱动,现在可以通过下面的命令简单地安装MySQLServer:
yum源开启相应版本,并安装:
[root@localhost ~]# cat /etc/yum.repos.d/mysql-community.repo # Enable to use MySQL 5.6 [mysql56-community] name=MySQL 5.6 Community Server baseurl=http://repo.mysql.com/yum/mysql-5.6-community/el/7/$basearch/ enabled=0 #enabled=0关闭本地更新模式 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql # Enable to use MySQL 5.7 [mysql57-community] name=MySQL 5.7 Community Server baseurl=http://repo.mysql.com/yum/mysql-5.7-community/el/7/$basearch/ enabled=1 #enabled=1开启本地更新模式 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql
#上面开启mysql 5.7本地安装模式,所以安装版本为mysql5.7 yum install mysql-server mysql-client libmysqlclient-dev
3、启动初始化
centos 6
/etc/init.d/mysqld start
centos 7
systemctl start mysqld.service
#查看初始密码
[root@localhost ~]# grep "temporary password" /var/log/mysqld.log 2018-05-08T09:08:56.884520Z 1 [Note] A temporary password is generated for root@localhost: a?dj#AqgN5yG
#mysql安全配置向导
[root@localhost ~]# mysql_secure_installation Enter current password for root (enter for none): <–初次运行直接回车 Set root password? [Y/n] <– 是否设置root用户密码,输入y并回车或直接回车 Remove anonymous users? [Y/n] <– 是否删除匿名用户,生产环境建议删除,所以直接回车 Disallow root login remotely? [Y/n] <–是否禁止root远程登录,根据自己的需求选择Y/n并回车,建议禁止 Remove test database and access to it? [Y/n] <– 是否删除test数据库,直接回车 Reload privilege tables now? [Y/n] <– 是否重新加载权限表,直接回车
至此我就可以使用Yum简单地管理MySQL更新,并能确保总是从官网软件库得到最新的发布版。
4、mysql配置
# cat /etc/my.cnf
[client] port = 3306 socket=/var/lib/mysql/mysql.sock [mysqld] bind_address=127.0.0.1 port = 3306 basedir = /usr datadir=/var/lib/mysql pid-file = /var/run/mysqld/mysqld.pid socket=/var/lib/mysql/mysql.sock log-error=/var/log/mysqld.log # time zone default-time-zone = system character-set-server = utf8 default-storage-engine = InnoDB # skip options skip-name-resolve skip-symbolic-links skip-external-locking skip-slave-start # res settings back_log = 128 #接受队列 max_connections = 500 #最大并发连接数 max_connect_errors = 5000 #open_files_limit = 10240 connect-timeout = 10 #连接超时之前的最大秒数 wait-timeout = 28800 #等待关闭连接的时间 interactive-timeout = 28800 innodb_buffer_pool_size = 256M innodb_log_file_size = 256M innodb_flush_log_at_trx_commit = 2 innodb_flush_method = O_DSYNC innodb_thread_concurrency = 0 #这里推荐设置为0不限制并发数,更好去发挥CPU多核处理能力,提高并发量 # Recommended in standard MySQL setup sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES [mysqldump] quick max_allowed_packet = 64M [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/var/run/mysqld/mysqld.pid
更多mysql配置,请见 https://blog.51cto.com/qiangsh/1554822
5、重启mysql
centos 6
/etc/init.d/mysqld restart
centos 7
systemctl restart mysqld.service
6、开机启动
centos 6
chkconfig --level 2345 mysqld on
centos 7
systemctl enable mysqld.service
报错:
1、root password update failed
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement.
解决办法:
[**@localhost ~]# mysql mysql> set global read_only=0; Query OK, 0 rows affected (0.00 sec) mysql> flush privileges; Query OK, 0 rows affected (0.00 sec) mysql> quit [**@localhost ~]# /usr/bin/mysql_secure_installation
如此便可以重新更新root密码了!
2、[ERROR] InnoDB: Cannot create log files because data files are corrupt or the database was not shut down cleanly after creating the data files.
解决办法:进入你的mysql数据存放目录,删除ibdata1文件即可,例如在我的环境下
#cd /var/lib/mysql #mv ibdata1 ibdata1.bak
3、[ERROR] InnoDB: space header page consists of zero bytes in data file ./ibdata1
解决办法:修改配置文件my.cnf
#根据个人环境空间大小和需求调节如下参数的值
innodb_buffer_pool_size = 256M innodb_log_file_size = 256M innodb_thread_concurrency = 16 innodb_flush_log_at_trx_commit = 2 #添加一条: innodb_flush_method=normal
4、ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
解决办法:Google上有很多,我遇到这个情况的时候只是使用/usr/bin/mysql_secure_installation 重新设置一次。
5、ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
解决办法:http://www.cnblogs.com/visi_zhangyang/archive/2012/03/05/2380531.html