下载安装包:
1.网络下载: wget https://cdn.mysql.com/Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
2.安装包下载:在 MySQL 官网下载 5.7 后缀为 tar.gz 压缩包,然后拉到服务器
解压文件:
1.tar -zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
1.cp mysql-5.7.22-linux-glibc2/* /usr/local/mysql -r
2.如果是网络下载,就先切换到系统目录
1.cd /usr/local/ 文件如果不存在就自己创建
mkdir local
cd /usr/local/
2.解压文件 tar -zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
创建文件夹:
1.cd /usr/local/mysql/
2.mkdir data(文件存储和安装)
添加系统 MySQL 组和 MySQL 用户:
添加系统 MySQL 组:groupadd MySQL
添加 MySQL 用户:useradd -r -g MySQL MySQL (添加完成后可用 id MySQL 查看)
安装数据库
切到 MySQL 目录:cd /usr/local/mysql
修改当前目录拥有者为 MySQL 用户:chown -R mysql:mysql ./
修改当前 data 目录拥有者为 MySQL 用户 chown -R mysql:mysql data
安装数据库:bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
报错:error while loading shared libraries: libaio.so.1: cannot open shared object file:
处理方法:yum install -y libaio #安装后重新启动就行
报错:如果遇到日志文件错误
处理方法:删除 my.cnf 文件
注意:生成的随机密码结尾有 root@localhost:xxxxxx;冒号后面是密码
配置 my.cnf
VIM /etc/my.cnf (直接把下面内容复制上就行)
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
#不区分大小写 (sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 这个简单来说就是 SQL 语句是否严格)
lower_case_table_names = 1
log-error=/var/log/mysqld.log
pid-file=/usr/local/mysql/data/mysqld.pid
添加开机启动 cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
修改 VIM /etc/init.d/mysqld
添加路径 在 46 行
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
启动 MySQL
service mysqld start
启动报错: The server quit without updating PID file (/usr/local/mysql/data/VM_0_16_centos.pid).
报错解决:/etc/init.d/mysql start
加入开机起动 chkconfig --add mysqld
登录修改密码
如果连接不上报错-bash: MYSQL: command not found
alias mysql=/usr/local/mysql/bin/mysql
MySQL -uroot -p 上面初始化时的密码,直接加载 p 后面就行,不用加空格
SQL 语句必必须添加分号;
mysql> set password=password("new password");(设置的新密码)
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> flush privileges;(配置立马生效)
Query OK, 0 rows affected, 1 warning (0.00 sec)
顺带说下,在 MySQL 里面输入 quit 或者 exit 可以退出 MySQL
MySQL 远程连接
在 MySQL 界面输入:GRANT ALL PRIVILEGES ON . TO 'root'@'%'IDENTIFIED BY 'mypassword' WITH GRANT OPTION;(mypassword 刚才设置的密码)
mysql> flush privileges;(配置立马生效)
开启 3306 端口(也可以使用 firewall 打开端口)
开启端口方法(2020.2.14 补上)
firewall-cmd --zone=public --add-port=3306/tcp --permanent # 开放 3306 端口
firewall-cmd --zone=public --remove-port=3306/tcp --permanent #关闭 3306 端口
firewall-cmd --reload # 配置立即生效
CentOS 7.0 默认使用的是 firewall 作为防火墙,这里改为 iptables 防火墙。
- 关闭 firewall:
systemctl stop firewalld.service
systemctl disable firewalld.service
systemctl mask firewalld.service
- 安装 iptables 防火墙
yum install iptables-services -y
3.启动设置防火墙
systemctl enable iptables
systemctl start iptables
4.查看防火墙状态
systemctl status iptables
5 编辑防火墙,增加端口
vi /etc/sysconfig/iptables #编辑防火墙配置文件
-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
:wq! #保存退出
3.重启配置,重启系统
systemctl restart iptables.service #重启防火墙使配置生效
systemctl enable iptables.service #设置防火墙开机启动
服务器的访问层开启后,阿里云(腾讯云)也要开启,添加安全组,默认访问全部开启,就可以访问数据库了
修改数据库密码:
1.cd /etc/
2.vim my.cnf
添加下面语句:
3.skip-grant-tables
修改 Linux MySQL 5.7 版本密码语句
4.use mysql;
5.update mysql.user set authentication_string=password('新密码') where user='root';
6.flush privileges;
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于