[linux]centos7.4上安装MySQL-8.0.11【完美安装】
版本声明
centos7.4
MySQL-8.0.11
1.我用的阿里云的虚拟主机,刚从windows换到linux,需要装下常用工具
#安装下sz rz常用到上传下载的命令
yum install -y lrzsz
#安装解压包工具
yum install -y tar
2.检查之前是否安装过mysql
检查是否安装过mysql
rpm -qa | grep mysql 或 rpm -qa|grep -i mysql
如果有的话可以用删除mysql的命令
rpm -e –nodeps 包名 如果提示依赖错误 rpm -ev 包名 --nodeps ,如果提示错误:error: %preun(xxxxxx) scriptlet failed, exit status 1 尝试用 rpm -e --noscripts 包名
3.在线安装,如果安装自定义版本,(可以更改下链接中的版本号下载不同的版本~)
wget http://dev.mysql.com/get/Downloads/MySQL-8.0.11/mysql-8.0.11-linux-glibc2.12-x86_64.tar
非在线安装的话,先从官网找到对应的版本,再rz到服务器上解压包安装,或者rpm查看mysql依赖包再用命令安装
mysql下到指定目录后,解压目录
解压
tar -xvf file.tar //解压 tar包
tar -xzvf file.tar.gz //解压tar.gz
tar -xjvf file.tar.bz2 //解压 tar.bz2
tar -xZvf file.tar.Z //解压tar.Z
unrar e file.rar //解压rar
unzip file.zip //解压zip
4.mysql的环境变量配置
编辑环境配置文件
vi /etc/profile
具体路径根据自己安装的目录
export PATH=$PATH:/usr/local/mysql/bin
改动环境变量后刷新下环境变量配置文件
source /etc/profile
5.解压mysql后,添加用户和组
groupadd mysql
#添加用户mysql到用户组mysql
useradd -g mysql mysql
进入安装mysql软件目录,修改目录拥有者为testcx用户
cd mysql/
chown -R testcx:mysql ./
安装数据库,此处可能出现错误。
./scripts/mysql_install_db --user=testcx
解决办法:
yum install -y perl-Data-Dumper
chown -R root:root ./
chown -R testcx:root data
再执行./scripts/mysql_install_db --user=testcx
6.继续...为写进seriver使用
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
#配置文件,复制到etc下
cp my.cnf /etc/my.cnf
#修改启动脚本
vi /etc/init.d/mysqld 修改下面两个参数
basedir=/usr/local/mysql/
datadir=/usr/local/mysql/data/mysql
7.启动mysql服务等操作
启动
service mysqld start
重启
service mysqld restart
停止
service mysqld stop
8.第一次登录root,修改密码
# vim /etc/my.cnf
在[mysqld]的段中加上一句:skip-grant-tables
例如:
[mysqld]
skip-grant-tables
wq
重启mysql, service mysqld restart
登录root
mysql -uroot -p mysql 登录root
USE mysql ;
修改密码
UPDATE user SET Password = password ('123pws') WHERE User = 'root' ;
#刷新
flush privileges ;
把etc/my.cnf 加的skip-grant-tables 去掉 再重启
9.先登陆root,在服务器重新创建一个mysql用户 username为创建的用户名 host指定哪个主机可远程访问 所有主机 改成%即可
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
创建好用户授权访问数据库所有的权限 *.*表示哪个库的哪个表 *.*表示所有库和表
9.1. GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassword' WITH GRANT OPTION;
9.2. FLUSH PRIVILEGES;
编辑/etc/my.cnf指定ip 端口
bind-address=内网ip
port=端口号
wq
重启mysql生效
10.防火墙开放端口,远程可连接到服务器数据库
可参考csdn的一位小伙伴 https://blog.csdn.net/achang21/article/details/52538049
contens7之后的版本已经不用iptables了 用的是firewall
所以老命令可能不好使
先关闭 firewall
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
安装iptables service
yum -y install iptables-services
如果要修改防火墙配置,如增加防火墙端口
vi /etc/sysconfig/iptables
增加规则
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
保存退出后
systemctl restart iptables.service #重启防火墙使配置生效
ystemctl enable iptables.service #设置防火墙开机启动
*阿里云注意安全策略端口开放
开放下端口
11.本地navicat验证连接
需注意 便宜的阿里腾讯不会有独立的外网ip 都是做的映射。所以服务器配置内网ip 本地用外网ip连接
若有理解错误的地方,请留言哈~