CentOS7安装mysql5.6
在安装MySQL时总会出现一些小问题,导致安装进度过慢,在百度搜加上自己实际操作,总结的安装方式,共同进步
一、安装mysql
1、下载安装包使用wget命令安装
1 | wget -c -t0 https: //cdn.mysql.com//Downloads/MySQL-5.6/mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz |
2、卸载自带的Mariadb
1 2 | [root @localhost ~]# rpm -qa|grep mariadb // 查询出来已安装的mariadb [root @localhost ~]# rpm -e --nodeps 文件名 // 卸载mariadb,文件名为上述命令查询出来的文件 |
3、删除etc目录下的my.cnf
1 | [root @localhost ~]# rm /etc/my.cnf |
4、执行以下命令来创建mysql用户组
1 | [root @localhost ~]# groupadd mysql |
5、执行以下命令来创建一个用户名为mysql的用户并加入mysql用户组
1 | [root @localhost ~]# useradd -g mysql mysql |
6、将下载的压缩包放到 /usr/local/ 目录下(通过mv 要移动的文件 /usr/local/)
7、解压安装包
1 | [root @localhost ~]# tar -xvf mysql- 5.6 . 34 -linux-glibc2. 5 -x86_64.tar |
注:如果压缩包为:mysql-5.6.34-linux-glibc2.5-x86_64.tar.gz
1 | 解压命令为: tar -zxvf mysql- 5.6 . 34 -linux-glibc2. 5 -x86_64.tar.gz |
8、将解压好的文件夹重命名为mysql
1 | [root @localhost local]# mv 解压出来的文件夹名 mysql |
9、在 etc 下新建配置文件my.cnf,并在该文件中添加代码:
将 /usr/local/mysql/support-files 路径下的 my-default.cnf 文件拷贝到 /etc/my.cnf 命名为my.cnf代码为
1 | [root @localhost support-files]# cp my- default .cnf /etc/my.cnf |
配置/etc目录下的my.cnf文件
1 | [root @localhost support-files]# vim /etc/my.cnf |
通过vim编辑器编辑my.cnf代码如下:在网上能找到相应的配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | [mysql] # 设置mysql客户端默认字符集 default -character-set=utf8 socket=/var/lib/mysql/mysql.sock [mysqld] skip-name-resolve #设置 3306 端口 port = 3306 socket=/var/lib/mysql/mysql.sock # 设置mysql的安装目录 basedir=/usr/local/mysql # 设置mysql数据库的数据的存放目录 datadir=/usr/local/mysql/data # 允许最大连接数 max_connections= 200 # 服务端使用的字符集默认为 8 比特编码的latin1字符集 18 . character-set-server=utf8 # 创建新表时将使用的默认存储引擎 default -storage-engine=INNODB lower_case_table_name= 1 max_allowed_packet=16M |
10、进入安装mysql软件目录
1 2 3 | [root @localhost ~]# cd /usr/local/mysql [root @localhost mysql]# chown -R mysql:mysql ./ 修改当前目录拥有着为mysql用户 [root @localhost mysql]# ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ 安装数据库 |
注:若执行以上最后一个命令出现以下问题:
1 | FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:Data::Dumper |
解决方法 :安装autoconf库
1 2 | 命令: yum -y install autoconf //此包安装时会安装Data:Dumper模块 安装完成重新执行上面的安装数据库 |
注:若是安装数据库出现以下错误
1 2 | 2018 - 03 - 19 14 : 00 : 43 40502 [ERROR] /usr/local/mysql //bin/mysqld: unknown variable 'l_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES' 2018 - 03 - 19 14 : 00 : 43 40502 [ERROR] Aborting |
解决办法:将/etc/my.cnf文件中下面这句话注释掉
1 2 | [root @localhost mysql]# vim /etc/my.cnf l_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES //注释掉使用#号 |
重新执行安装数据库
修改当前data目录的拥有者为mysql用户
1 | [root @localhost mysql]# chown -R mysql:mysql data |
二、配置MySQL
1、授予my.cnf最大权限
1 | [root @localhost ~]# chown 777 /etc/my.cnf |
设置开机自启动服务控制脚本:
2、复制启动脚本到资源目录
1 | [root @localhost mysql]# cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld |
3、增加mysqld服务控制脚本执行权限
[root@localhost mysql]# chmod +x /etc/rc.d/init.d/mysqld
4、将mysqld服务加入到系统服务
1 | [root @localhost mysql]# chkconfig --add mysqld |
5、检查mysqld服务是否已经生效
1 | [root @localhost mysql]# chkconfig --list mysqld |
1 2 3 4 5 6 | 注意:该输出结果只显示 SysV 服务,并不包含原生 systemd 服务。SysV 配置数据可能被原生 systemd 配置覆盖。 如果您想列出 systemd 服务,请执行 'systemctl list-unit-files' 。 欲查看对特定 target 启用的服务请执行 'systemctl list-dependencies [target]' 。 mysqld 0 :关 1 :关 2 :开 3 :开 4 :开 5 :开 6 :关 |
service命令控制mysql的启动和停止
1 | 命令为:service mysqld start和service mysqld stop |
6、启动mysqld
1 | [root @localhost mysql]# service mysqld start |
注:启动后出现异常
解决办法
1 2 3 4 | 创建文件夹 [root @localhost lib]# mkdir /var/lib/mysql 给文件夹赋权限 chmod 777 /var/lib/mysql |
7、将mysql的bin目录加入PATH环境变量,编辑 ~/.bash_profile文件
1 | [root @localhost mysql]# vim ~/.bash_profile |
在文件最后添加如下信息:指定环境变量启动程序位置
1 | export PATH=$PATH:/usr/local/mysql/bin |
执行下面的命令是修改的内容立即生效:
1 | [root @localhost mysql]# source ~/.bash_profile |
8、以root账户登录mysql,默认是没有密码的,要输入密码的时候直接回车即可。
1 | [root @localhost mysql]# mysql -u root -p |
9、设置root账户密码为root(也可以修改成你要的密码)
1 2 3 | mysql>use mysql mysql>update user set password=password( 'root' ) where user= 'root' and host= 'localhost' ; mysql>flush privileges; |
10、设置远程主机登录,使用下面命令查看和添加,注意下面的your username 和 your password改成你需要设置的用户和密码
1 2 3 4 5 6 7 8 9 10 11 12 | 查看用户 select Host,User,Password from mysql.user; 创建用户 create user test identified by '123456' ; 分配权限 grant all privileges on *.* to 'test' @ '%' identified by '123456' with grant option; 刷新 flush privileges ; 修改指定用户密码 update mysql.user set password=password( '新密码' ) where User= "test" and Host= "localhost" ; 删除用户 delete from user where User= 'test' and Host= 'localhost' ; |
如果不能访问:CentOS7防火墙设置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | 查看已开放的端口(默认不开放任何端口) firewall-cmd --list-ports 查询端口号 8020 是否开启! 查询端口号:firewall-cmd --query-port= 8020 /tcp 开启 80 端口 firewall-cmd --zone= public (作用域) --add-port= 80 /tcp(端口和访问类型) --permanent(永久生效) 重启防火墙 firewall-cmd --reload 停止防火墙 systemctl stop firewalld.service 禁止防火墙开机启动 systemctl disable firewalld.service 删除 firewall-cmd --zone= public --remove-port= 80 /tcp --permanent |
其他版本:参考 http://blog.csdn.net/wailaizhu/article/details/53488954
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | 修改vim /etc/sysconfig/iptables添加端口号-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT 或添加端口放行 1 .开放 80 , 22 , 8080 端口 /sbin/iptables -I INPUT -p tcp --dport 80 -j ACCEPT /sbin/iptables -I INPUT -p tcp --dport 22 -j ACCEPT /sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT 2 .保存 /etc/rc.d/init.d/iptables save 3 .查看打开的端口 /etc/init.d/iptables status 4 .关闭防火墙 1 ) 永久性生效,重启后不会复原 开启: chkconfig iptables on 关闭: chkconfig iptables off 2 ) 即时生效,重启后复原 开启: service iptables start 关闭: service iptables stop |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步