华为云服务器部署mysql

1. 下载mysql压缩包

本机是64位,直接用命令安装

msyql官网: https://dev.mysql.com/downloads/mysql/

去网站看下所需的版本,修改下列命令

wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz

2. 解压

解压命令:tar -zxvf mysql-xxx.tar.gz

复制解压后的mysql目录

cp -r mysql-5.7.20-linux-glibc2.12-x86_64 /usr/local/mysql

创建目录:/usr/local/mysql/data/mysql

授权目录:cd /usr/local/mysql/

命令 :chown -R mysql:mysql ./   

3. 初始化mysql

执行: ./scripts/mysql_install_db --user=root --datadir=/usr/local/mysql/data/mysql

报错:-bash: ./scripts/mysql_install_db: No such file or directory

原因是:MySQL5.7没有scripts目录,不用管

执行下列命令(在bin目录下执行)

初始化命令:/usr/local/mysql/bin/mysqld --initialize --user=root --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/mysql

会报错:mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

这个问题出现的原因是缺少libaio,使用命令yum install -y libaio进行安装

华为云服务器部署mysql_第1张图片

再次执行初始化命令

成功,初始化密码也出来了(初始密码要记住!!!稍后登录会用)

华为云服务器部署mysql_第2张图片

3. 设置加密连接

执行mysql_ssl_rsa_setup

-bash: mysql_ssl_rsa_setup: command not found

首先,进入cd /usr/bin

然后,ln -fs /usr/local/mysql/bin/mysql_ssl_rsa_setup /usr/bin

报错:

修改 /etc/my.cnf 文件

[mysqld]

#datadir=/var/lib/mysql

socket=/var/lib/mysql/mysql.sock

# Disabling symbolic-links is recommended to prevent assorted security risks

symbolic-links=0



# add start 2017.12.4

datadir=/usr/local/mysql/data/mysql

basedir=/usr/local/mysql

user=root

character_set_server=utf8 #设置编码格式,否则出现中文乱码

# add end



# Settings user and group are ignored when systemd is used.

再次执行mysql_ssl_rsa_setup

华为云服务器部署mysql_第3张图片

 

4. 加入系统服务

将mysqld文件复制到/etc/init.d目录下

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

进入/etc/init.d目录并修改mysqld文件

添加下方两条数据

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data/mysql

如图所示 ↓

华为云服务器部署mysql_第4张图片

 

执行:

chkconfig mysqld on # 设置开机自启动

chkconfig --list | grep mysqld

华为云服务器部署mysql_第5张图片

 

 5. 启动mysql服务

启动(start) 重启(restart) 停止(stop)

启动命令:service mysqld start

报错:

 创建目录/var/log/mysql  /var/run/mysql  /var/lib/ mysql

华为云服务器部署mysql_第6张图片

ps:mariadb是MySQL的一个分支

再次开启服务,要是还出错就在log目录下再加一个mariadb的目录

华为云服务器部署mysql_第7张图片

 

6. 配置环境变量

使用命令 vim /etc/profile 进行环境变量的配置

划到最下面,添加一条:export PATH=$PATH:/usr/local/mysql/bin/

保存退出,使用命令“source /etc/profile”更新环境变量

使用命令“echo $PATH”查看环境变量是否配置完毕

7. 登录mysql

如果丢失临时密码,找回方法:

找到datadir目录进入,cd /usr/local/mysql/data/mysql/     删除所有,重新初始化,生成新的临时密码。

登录命令:mysql -u root -p华为云服务器部署mysql_第8张图片

输入临时密码完成登录

登录报错

解决办法:

ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock

操作完成后再次登录

华为云服务器部署mysql_第9张图片

临时密码过于复杂,修改密码:

set password for 'root'@'localhost' =password('新密码');

//更改root密码的sql语句,root是新的root密码(别忘了结尾的;号)

退出,再次验证登录是否成功

华为云服务器部署mysql_第10张图片 

8. 使用本地Navicat连接数据库

1)创建用户用来远程连接

    GRANT ALL PRIVILEGES ON *.* TO 'devtest'@'%' IDENTIFIED BY 'devtest' WITH GRANT OPTION;

  (第一个devtest表示用户名,%表示所有的电脑都可以连接,也可以设置某个ip地址运行连接,第二个devtest表示密码)。

 2)刷新权限

执行 flush privileges; 立即生效

 

3)查询数据库用户

(看到用户创建成功了)华为云服务器部署mysql_第11张图片

SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;

 

 9. 开启防火墙端口

什么都不设置直接通过Navicat连,大概率是报错的

华为云服务器部署mysql_第12张图片

查看端口命令:netstat -an|grep 3306

先确定控制打开3306端口(),如果可以访问就OK。

如果不行:

centos7防火墙命令:

查看已经开放的端口:firewall-cmd --list-ports

 

防火墙没开启,开启防火墙:systemctl start firewalld.service   

开启启动防火墙:systemctl enable firewalld.service

开启防火墙后开放端口:firewall-cmd --zone=public --add-port=3306/tcp --permanent 

命令含义:

–zone #作用域

–add-port=80/tcp #添加端口,格式为:端口/通讯协议

–permanent #永久生效,没有此参数重启后失效

查看3306端口使用的什么协议:netstat -antp | grep 3306

 查看已经开放的端口:firewall-cmd --list-ports   

此命令执行后没有结果,应该是开启端口和开放端口意义不同,此处不需要开启,只要开放。 

10.开启iptables 

为了安全,不光有防火墙,往往还开启了iptables服务。

设置 iptables service:   yum -y install iptables-services

华为云服务器部署mysql_第13张图片

要修改防火墙配置,如增加防火墙端口3306

    vim /etc/sysconfig/iptables

增加规则

    -A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT

华为云服务器部署mysql_第14张图片

 

保存退出后

    systemctl restart iptables.service #重启防火墙使配置生效

    systemctl enable iptables.service #设置防火墙开机启动

Netfileter/iptables (以下简称iptables)是nuix/linux 系统自带的优秀且完全免费的基于包过滤的防火墙工具、它的功能十分强大、使用非常灵活、可以对流入、流出及流经服务器的数据包进行精细的控制。

最后重启系统使设置生效即可。

    systemctl start iptables.service #打开防火墙

    systemctl stop iptables.service #关闭防火墙

华为云服务器部署mysql_第15张图片

systemctl status iptables #查看当前运行情况

systemctl stop iptables #结束运行

 

 

你可能感兴趣的:(华为云服务器部署实录,华为云,服务器,运维,mysql,数据库)