阿里云安装Mysql

1. 删除原来的数据库

centos7中默认安装了数据库MariaDB,如果直接安装MySQL的话,会直接覆盖掉这个数据库,当然也可以手动删除一下

//先查询
[root@iZwz9c6zf03buu0cj41pfvZ ~]# rpm -qa|grep mariadb 
mariadb-libs-5.5.60-1.el7_5.x86_64
//再删除
[root@iZwz9c6zf03buu0cj41pfvZ ~]# rpm -e --nodeps mariadb-libs-5.5.60-1.el7_5.x86_64
//删除之后再查一下  已经查不到了 说明已经删除成功
[root@iZwz9c6zf03buu0cj41pfvZ ~]# rpm -qa|grep mariadb 
[root@iZwz9c6zf03buu0cj41pfvZ ~]# 

2. 开始安装

我这里先安装了 Yum,通过 Yum 管理rpm包依赖,能够从指定的服务器自动下载RPM包并且安装,所以在安装完成后必须要卸掉,否则会自动更新!

安装MySQL官方的yum repository

// npm
[root@iZwz9c6zf03buu0cj41pfvZ ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

下载rpm包

// 下载npm
[root@iZwz9c6zf03buu0cj41pfvZ ~]# yum -y install mysql57-community-release-el7-10.noarch.rpm

安装

// 安装 mysql 
[root@iZwz9c6zf03buu0cj41pfvZ ~]# yum -y install mysql-community-server

启动 mysql 服务

// 安装mysql 
[root@iZwz9c6zf03buu0cj41pfvZ ~]# systemctl start  mysqld.service

查询服务是否启动成功

//
[root@iZwz9c6zf03buu0cj41pfvZ ~]# systemctl status mysqld.service
启动成功的样子.png

Linux上 MySQL常用的命令:

重启:systemctl restart mysqld.service

停止:systemctl stop mysqld.service

查看状态:systemctl status mysqld.service

3. 登录数据库

//登陆
[root@iZwz9c6zf03buu0cj41pfvZ ~]# mysql -u root -p
//第一次启动MySQL后,会有临时密码 ,通过这个命令查看
[root@iZwz9c6zf03buu0cj41pfvZ ~]# grep "password" /var/log/mysqld.log
//输出
[root@iZwz9c6zf03buu0cj41pfvZ ~]# grep "password" /var/log/mysqld.log
2019-08-07T06:54:15.300272Z 1 [Note] A temporary password is generated for root@localhost: 9NuLe_K80siY
2019-08-07T07:38:08.404624Z 2 [Note] Access denied for user 'root'@'localhost' (using password: NO)
**密码就是 9NuLe_K80siY **

//输入 密码
[root@iZwz9c6zf03buu0cj41pfvZ ~]# mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.27

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>


假如以上方式不成功的话,可以尝试下面的方法,成功的请忽略

  1. 停止服务:systemctl stop mysqld.service
  2. 修改mMySQL的配置文件: vi /etc/my.cnf
  3. 在最后加上: skip-grant-tables
  4. 启动服务: systemctl start mysqld.service
  5. 这时可以跳过密码登陆: mysql -u root

修改密码

mysql> use mysql;
Database changed
mysql> update mysql.user set authentication_string=password('123456') where user='root' ;
Query OK, 1 row affected, 1 warning (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 1

exit 退出 重新登陆
在刚刚那个配置文件中去掉 skip-grant-tables
然后重启MySQL
然后就可以重新登陆了

在执行一句 sql 语句的时候
sql报错了
百度上面说:要加一句

  SET PASSWORD = PASSWORD('密码');

如果你的还报错 , 那么可能是密码复杂等级太低,如果执意要设置这样的密码,可以执行一下改变密码等级的命令

mysql> set global validate_password_policy=0;  //改变密码等级

mysql> set global validate_password_length=4;   //改变密码最小长度

然后再输入刚刚的命令:

  SET PASSWORD = PASSWORD('密码');

3. 配置远程登陆

MySQL默认root用户只能本地登录,如果要远程连接,要设置下
使用命令

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
Query OK, 0 rows affected, 1 warning (0.00 sec)

 *.*的意思是所有库的所有表;To后面跟的是用户名;@后面跟的是ip地址,%代表所有ip地址,IDENTIFIED BY 后面的是密码。


mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)

注意:
需要注意mysql的配置文件中的bindaddress 的参数和skip-networking 配置

bindaddress : 设定哪些ip地址被配置,使得mysql服务器只回应哪些ip地址的请求),最好注释掉该参数或设置成为127.0.0.1以外的值

skip-networking : 如果设置了该参数项,将导致所有TCP/IP端口没有被监听,也就是说除了本机,其他客户端都无法用网络连接到本mysql服务器,所以应该注释掉该参数

添加3306端口

//
[root@iZwz9c6zf03buu0cj41pfvZ ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent;

结果提示没有运行防火墙

//
[root@iZwz9c6zf03buu0cj41pfvZ ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent;
FirewallD is not running

那么就打开呗

//打开防火墙
[root@iZwz9c6zf03buu0cj41pfvZ ~]# systemctl start firewalld
 // 查看防火墙状态
[root@iZwz9c6zf03buu0cj41pfvZ ~]# systemctl status firewalld

image.png

然后输入开放3306端口的命令

//
[root@iZwz9c6zf03buu0cj41pfvZ ~]# firewall-cmd --zone=public --add-port=3306/tcp --permanent;
success
[root@iZwz9c6zf03buu0cj41pfvZ ~]# firewall-cmd --reload   //重启防火墙
success

4. 最后

1.我们刚开始说要写在yum的repository,防止自动更新,用这个命令就行:

//
[root@iZwz9c6zf03buu0cj41pfvZ ~]# yum -y remove mysql57-community-release-el7-10.noarch

2.MySQL设一下utf8:
打开/etc/my.cnf也就是数据库的配置文件,然后在底部复制粘贴:

character_set_server=utf8
init_connect='SET NAMES utf8'
[root@iZwz9c6zf03buu0cj41pfvZ etc]# cat my.cnf
# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html

[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock

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

log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

#加到这里
character_set_server=utf8
init_connect='SET NAMES utf8'

采用navicat新建数据库时,需要将编码方式设置为,字符集:utf8 -- UTF-8 Unicode ,排序规则:utf8_general_ci

3.阿里云的服务器中的安全组加入mysql连接的规则。这个很重要不然远程无法连接上。

4.配置文件的说明:
  /etc/my.cnf 这是mysql的主配置文件
  /var/lib/mysql mysql数据库的数据库文件存放位置
  /var/log mysql数据库的日志输出存放位置

你可能感兴趣的:(阿里云安装Mysql)