安装前,我们可以检测系统是否自带安装 MySQL:
rpm -qa | grep mysql
如果你系统有安装,那可以选择进行卸载:
rpm -e mysql // 普通删除模式
rpm -e --nodeps mysql // 强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除
下载mysql安装包
wget https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
-2018-06-06 16:41:46-- https://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
正在解析主机 dev.mysql.com (dev.mysql.com)... xxxx
正在连接 dev.mysql.com (dev.mysql.com)|xxxxx|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 302 Found
位置:https://repo.mysql.com//mysql57-community-release-el7-9.noarch.rpm [跟随至新的 URL]
--2018-06-06 16:41:48-- https://repo.mysql.com//mysql57-community-release-el7-9.noarch.rpm
正在解析主机 repo.mysql.com (repo.mysql.com)... xxxxx
正在连接 repo.mysql.com (repo.mysql.com)|xxxx|:443... 已连接。
已发出 HTTP 请求,正在等待回应... 200 OK
长度:9224 (9.0K) [application/x-redhat-package-manager]
正在保存至: “mysql57-community-release-el7-9.noarch.rpm”
100%[==========================================================>] 9,224 --.-K/s 用时 0s
2018-06-06 16:41:48 (169 MB/s) - 已保存 “mysql57-community-release-el7-9.noarch.rpm” [9224/9224])
安装
rpm -ivh mysql57-community-release-el7-9.noarch.rpm
准备中... ################################# [100%]
正在升级/安装...
1:mysql57-community-release-el7-9 ################################# [100%]
下载安装依赖包
yum install mysql-server
已加载插件:fastestmirror, langpacks
mysql-connectors-community | 2.5 kB 00:00:00
mysql-tools-community | 2.5 kB 00:00:00
mysql57-community | 2.5 kB 00:00:00
(1/3): mysql-connectors-community/x86_64/primary_db | 20 kB 00:00:00
(2/3): mysql-tools-community/x86_64/primary_db | 41 kB 00:00:00
(3/3): mysql57-community/x86_64/primary_db | 144 kB 00:00:00
Loading mirror speeds from cached hostfile
* base: mirrors.cn99.com
* extras: mirrors.cn99.com
* updates: mirrors.cn99.com
正在解决依赖关系
....
第一次下载这里会比较慢
启动 MySQL:
[root[@localhost](https://my.oschina.net/u/570656) xx]# systemctl start mysqld
查看 MySQL 运行状态:
[root[@localhost](https://my.oschina.net/u/570656) xx]# systemctl status mysqld
停止 MySQL:
[root[@localhost](https://my.oschina.net/u/570656) opt]# systemctl stop mysqld
重启 MySQL:
[root[@localhost](https://my.oschina.net/u/570656) opt]# systemctl restart mysqld
验证是否安装成功
[root[@localhost](https://my.oschina.net/u/570656) opt]# mysqladmin --version
mysqladmin Ver 8.42 Distrib 5.7.22, for Linux on x86_64
注意: Mysql5.7默认安装之后root是有密码的。
获取MySQL的临时密码 为了加强安全性,MySQL5.7为root用户随机生成了一个密码,在error log中,关于error log的位置,如果安装的是RPM包,则默认是/var/log/mysqld.log。 只有启动过一次mysql才可以查看临时密码
[root@localhost opt]# grep 'temporary password' /var/log/mysqld.log
2018-06-06T09:06:49.274350Z 1 [Note] A temporary password is generated for root@localhost: 7Zk_*Td5<FKf
[root@localhost opt]# mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 5.7.22
修改密码
mysql> alter user 'root'@'localhost' identified by 'root123' ;
密码太简单就会提示下面的错误码
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.04 sec)
mysql>
退出mysql
mysql> quit Bye
查看mysql服务是否启动
[root[@localhost](https://my.oschina.net/u/570656) bin]# ps -ef | grep mysql
关闭目前运行的 MySQL 服务器
[root[@localhost](https://my.oschina.net/u/570656) opt]# cd /usr/bin
[root[@localhost](https://my.oschina.net/u/570656) bin]# ./mysqladmin -u root -p shutdown
再登录
[root[@localhost](https://my.oschina.net/u/570656) opt]# mysql -u root -p
Enter password:
创建数据库
mysql> create DATABASE RUNOOB;
mysql> CREATE DATABASE IF NOT EXISTS RUNOOB DEFAULT CHARSET utf8 COLLATE utf8generalci; Query OK, 1 row affected, 1 warning (0.05 sec)
如果数据库不存在则创建,存在则不创建,并设置数据库的字符集为utf-8 删除数据库 mysql> drop database RUNOOB;
要先切换数据库为RUNOOB,再创建数据库表
mysql> use RUNOOB
Database changed
mysql> CREATE TABLE IF NOT EXISTSrunoobtbl( ->runoobidINT UNSIGNED AUTO_INCREMENT, ->runoobtitleVARCHAR(100) NOT NULL, ->runoobauthorVARCHAR(40) NOT NULL, ->submissiondateDATE, -> PRIMARY KEY (runoobid) -> )ENGINE=InnoDB DEFAULT CHARSET=utf8;
Query OK, 0 rows affected (0.56 sec)
否则会包下面的错误: ERROR 1046 (3D000): No database selected
检查表是否创建成功
mysql> show tables;
+------------------+
| Tables_in_RUNOOB |
+------------------+
| runoob_tbl |
+------------------+
1 row in set (0.00 sec)
查看表的详细字段
mysql> desc runoobtbl -> ;
+-----------------+------------------+------+-----+---------+----------------+ | Field | Type | Null | Key | Default | Extra | +-----------------+------------------+------+-----+---------+----------------+ | runoobid | int(10) unsigned | NO | PRI | NULL | autoincrement | | runoobtitle | varchar(100) | NO | | NULL | | | runoobauthor | varchar(40) | NO | | NULL | | | submissiondate | date | YES | | NULL | | +-----------------+------------------+------+-----+---------+----------------+ 4
rows in set (0.16 sec)
远程访问数据库设置
use mysql;
UPDATE user SET `Host` = '%' WHERE `User` = 'root' LIMIT 1;
mysql增加权限:mysql库中的user表新增一条记录host为“%”,user为“root”。
%表示允许所有的ip访问
开放防火墙端口
[root@xxxx]# firewall-cmd --add-port=3306/tcp --permanent
success
[root@xxx]# firewall-cmd --reload
success
查看是否开通
[root@localhost bin]# firewall-cmd --query-port=3306/tcp
yes
查看防火墙状态
systemctl status firewalld.service
启动|关闭|重新启动 防火墙
systemctl [start|stop|restart] firewalld.service
修改数据库配置文件my.cnf
这里端口可以根据实际情况修改
[root@localhost bin]# vim /etc/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]
# listen on
port = 3306
#
# 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
[client]
port = 3306
default-character-set = utf8
[mysql]
default-character-set = utf8
bind-address = 0.0.0.0
[root@localhost bin]#
主要增加端口的监听及字符编码的设置
# listen on
port = 3306
[client]
port=3306
[mysql]
default-character-set = utf8
bind-address = 0.0.0.0
[root@localhost bin]# netstat -tunpl -A inet6
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp6 0 0 :::111 :::* LISTEN 1/systemd
tcp6 0 0 :::8080 :::* LISTEN 13253/java
tcp6 0 0 :::22 :::* LISTEN 1026/sshd
tcp6 0 0 ::1:631 :::* LISTEN 1031/cupsd
tcp6 0 0 ::1:25 :::* LISTEN 1284/master
tcp6 0 0 127.0.0.1:8005 :::* LISTEN 13253/java
tcp6 0 0 :::8009 :::* LISTEN 13253/java
tcp6 0 0 :::3306 :::* LISTEN 119702/mysqld
udp6 0 0 :::58173 :::* 114461/dhclient