Centos7.x上安装mysql5.7.2压缩版
安装手册
说明:本文主要描述在centos7上安装mysql5.7.2。文中出现的/data/mysql 为本次安装mysql的目录,可以根据自己需要进行修改。最好将系统/etc/selinux/config文件中设置SELINUX=disabled
SecureCRT.exe工具字体、编码utf-8设置:选项—》会话选项
# cat /etc/redhat-release
查看是否安装过mysql
首先检测Linux操作系统中是否安装了MySQL:
# rpm -qa | grep -i mysql
卸载安装包
如果有信息出现,则进行删除,命令如下:
# rpm -e --nodeps 包名
删除老版本mysql的开发头文件和库
# rpm -e --nodeps 包名
注意:卸载后/var/lib/mysql中的数据及/etc/my.cnf不会删除,如果确定没用后就手工删除:
# rm -f /etc/my.cnf
# rm -fr /var/lib/mysql
删除完成后,才能进行安装,否则安装会出错。
查看旧的mysql安装目录
# whereis mysql
删除旧的安装目录
# rm -rf 目录
新建目录
# cd /
# mkdir data
# cd data/
安装包准备
安装前先准备好压缩安装包或者到mysq官网下载即可,将安装报上传至/data/目录下后解压
# cd /data/
# tar -zxvf 安装包 -C /data/
目录名太长了,重命名为mysql
# mv mysql-5.7.22-linux-glibc2.12-x86_64 mysql
在mysql下面新建目录data
查看mysql用户或组是否存在
# id mysql
如需删除用户和组,执行下列操作
# groupdel mysql
# userdel -f mysql
不行就进入 vi /etc/grpup 找到mysql 在其前面加上 #
如下,说明没有用户了
创建mysql组
# groupadd mysql
查看是否创建成功
# cat /etc/group | grep mysql
mysql:x:500:
创建mysql用户
# useradd -r -g mysql mysql
查看是否创建成功
# cat /etc/passwd | grep mysql
给mysql用户设置密码为:xxxxxx(你自己的)
# passwd mysql
# chown -R mysql:mysql /data/mysql
# chmod -R 775 /data/mysql
# cd /data/mysql/support-files/
# ll
#vi my-default.cnf
[client] port = 3306 socket = /tmp/mysql.sock [mysqld] basedir = /data/mysql datadir = /data/mysql/data bind-address = 0.0.0.0 port = 3306 socket = /tmp/mysql.sock skip-external-locking key_buffer_size = 128M max_allowed_packet = 1M table_open_cache = 256 sort_buffer_size = 1M read_buffer_size = 1M read_rnd_buffer_size = 2M myisam_sort_buffer_size = 8M thread_cache_size = 8 query_cache_size= 16M max_connections = 213 wait_timeout = 31536000 interactive_timeout = 30 max_connect_errors = 9 long_query_time = 1 tmp_table_size = 16M #log-bin=mysql-bin #binlog_format=mixed #server-id = 1 lower_case_table_names = 1 [mysqldump] quick max_allowed_packet = 8M [mysql] no-auto-rehash [myisamchk] key_buffer_size = 12M sort_buffer_size = 1M read_buffer = 1M write_buffer = 1M [mysqlhotcopy] interactive-timeout |
# chown -R mysql:mysql /data/mysql
# chmod -R 775 /data/mysql
# cp my-default.cnf /etc/my.cnf
# cp mysql.server /etc/init.d/mysqld
# vi /etc/init.d/mysqld
进入编辑页面,按i 可编辑修改,按ctrl+c停止修改,然后 :wq 保存修改
# vi /etc/profile
文件末尾添加export MYSQL=/data/mysql,path中加入$MYSQL/bin:
# source /etc/profile
执行文件为mysql下bin文件夹中mysql_install_db,basedir为安装目录,datadir为数据文件目录。注:mysql_install_db在5.6版本中位于scripts文件夹,5.7已经取消该文件夹,合并到bin下:
#cd /data/mysql/bin
# ./mysqld --basedir=/data/mysql --user=mysql --datadir=/data/mysql/data --initialize
如果 报error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
就需要 安装libaio
# yum install libaio
如果报:[ERROR] --initialize specified but the data directory has files in it. Aborting
说明已经执行过一次,需要把'/data/mysql/data目录删除,重新创建,再授权
[root@centOS mysql]# cd /data/mysql
[root@centOS mysql]# rm -rf data
[root@centOS mysql]# mkdir data
[root@centOS mysql]# chown -R mysql:mysql /data/mysql
[root@centOS mysql]# chmod -R 775 /data/mysql
[root@centOS mysql]#
然后再执行:
#cd /data/mysql/bin
# ./mysqld --basedir=/data/mysql --user=mysql --datadir=/data/mysql/data --initialize
以上安装成功效果
# service mysqld start
此时已经可以启动服务,但整个工程只算完成了一半。
注意:新版的可能会报错,因为mysqld_safe的原因,旧版本安装的时候没有报错,只需要把mysqld_safe中的默认路径修改为自己的目标路径,再执行就可以了。
#service mysqld stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
[root@ZhOu bin]# mysql
mysql> use mysql;
mysql> update user set authentication_string=PASSWORD('root') where user='root';
mysql> flush privileges;
mysql> exit;
# mysql -u root -p
mysql> alter user 'root'@'localhost' identified by 'root';
mysql> flush privileges;
mysql> exit;
如下:
mysql> show global variables like 'port';
如果不是3306可进行修改mysql端口号
很简单,只需要修改user表中root用户的host就可以了。改完之后,记得重启一下服务,再次远程连接
# mysql -uroot -p
mysql> use mysql;
mysql> update user set host='%' where user='root';
mysql> exit;
# service mysqld restart
如果还连不上报10060 unknown error ,则关闭它
CentOS7.x 默认的防火墙不是iptables,而是firewalle.
查看防火墙状态(关闭后显示not running,开启后显示running)
# firewall-cmd --state
停止防火墙firewall
# systemctl stop firewalld.service
禁止防火墙firewall开机启动
# systemctl disable firewalld.service
CentOS6默认的防火墙是iptables
1。防火墙即时生效,重启后复原:
关闭
# service iptables stop
开启
# service iptables start
2。防火墙永久性生效,重启后不会复原
关闭:
# chkconfig iptables off
开启:
# chkconfig iptables on
官网手册: https://help.aliyun.com/document_detail/25471.html?spm=5176.100241.0.0.IneJPl
# chkconfig mysqld on