方式一
一、下载并安装mysql57:
rpm -qa | grep mysql #检查是否安装了mysql
rpm -qa | grep mariadb #检查是否安装了mariadb
rpm -e xxx #一般使用此命令即可卸载成功
rpm -e --nodeps xxx #卸载不成功时使用此命令强制卸载)
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
yum -y install mysql57-community-release-el7-10.noarch.rpm #安装MySql
yum repolist enabled | grep mysql.* #查看一下安装效果
yum -y install mysql-community-server --nogpgcheck
--nogpgcheck选项将指示它跳过检查软件包上的GPG签名验证
二、启动并查看状态MySQL:
systemctl start mysqld.service
systemctl status mysqld.service
三、查看MySQL的默认密码:
grep "password" /var/log/mysqld.log
四、登录进MySQL
mysql -uroot -p
五、修改默认密码(设置密码需要有大小写符号组合—安全性),把下面的my passrod替换成自己的密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'my password';
六、开启远程访问 (把下面的my passrod替换成自己的密码)
grant all privileges on *.* to 'root'@'%' identified by 'my password' with grant option;
flush privileges;
exit
七、在云服务上增加MySQL的端口
systemctl enable mysqld #设置开机自启
systemctl daemon-reload
firewall-cmd --permanent --add-port=3306/tcp //防火墙开发3306端口
systemctl status firewalld //查看防火墙的状态
二、方式二
1、通过 Xftp 将 MySQL 安装包拷贝到 Linux
2、解压缩
tar -xvf mysql-8.0.20-1.el7.x86_64.rpm-bundle.tar
3、安装 common、libs、client、server
4、删除自带的 mariadb
rpm -e mariadb-libs-5.5.44-2.el7.centos.x86_64 --nodeps
5、安装命令行
rpm -ivh mysql-community-common-8.0.20-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-libs-8.0.20-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-client-8.0.20-1.el7.x86_64.rpm --nodeps --force
rpm -ivh mysql-community-server-8.0.20-1.el7.x86_64.rpm --nodeps --force
6、初始化 MySQL(初始密码在vim /etc/my.cnf文件)
mysqld --initialize
7、授权防火墙
chown mysql:mysql /var/lib/mysql -R;
systemctl start mysqld.service;
systemctl enable mysqld;
8、查看数据库的初始化密码
cat /var/log/mysqld.log | grep password
9、登录数据库
mysql -uroot -p
10、修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
11、使用新密码登录
12、开启远程访问
create user 'root'@'%' identified with mysql_native_password by 'root';
grant all privileges on *.* to 'root'@'%' with grant option;
flush privileges;
13、开放 3306 端口
firewall-cmd --zone=public --add-port=3306/tcp --permanent
systemctl restart firewalld.service
firewall-cmd --reload
14、MySQL 安装默认使用美国的时区,北京时间比美国晚 8 小时
set global time_zone='+8:00';
15、创建数据表
create database test character set utf8 collate utf8_general_ci;
use test;
create table user(
id int primary key auto_increment,
name varchar(22),
birthday datetime
);
insert into user(name, birthday) VALUES ('小明','1999-01-01');
insert into user(name, birthday) VALUES ('小红','2000-01-01');
16、在MySQL中输入中文
#全局更改(哪个不是更改哪个)
show variables like'%char%';
set character_set_server = utf8;
#创建数据库时查看编码,并在创建数据库时设置为utf8
show variables like'%char%';
create database DatabaseName DEFAULT CHARACTER SET utf8;
show create database DatabaseName;
#不想创建新的数据库,可以只修改表的属性
#查看表的列的属性
show full columns from tablename;
#修改
alter table TableName change ColumnsName ColumnsName varchar(255)
character set utf8 collate utf8_unicode_ci not null default '';
MySQL 安装踩坑
错误
mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
解决方案这是却少numactl这个时候如果是Centos就 yum -y install numactl就可以解决问题
错误
Job for mysqld.service failed because the control process exited with errorcode
解决方案是因为 /var/lib/mysql /这个目标路径已经存在/var/lib/mysql /,导致无法初始化删除/var/lib/mysql /后重启MySQL服务就可以了!
错误
You must reset your password using ALTER USER statement beforeexecuting this statement
解决方案ALTER USER USER() IDENTIFIED BY '123456';
错误
Your password does not satisfy the current policy requirements
解决方案
1、首先需要设置密码的验证强度等级,设置 validate_password_policy 的全局参数为 LOW
即可,输入设值语句 “ set global validate_password_policy=LOW; ” 进行设值,
2、当前密码长度为 8 ,如果不介意的话就不用修改了,按照通用的来讲,设置为 6位的密码,设置 validate_password_length 的全局参数为 6 即可,输入设值语句 “ set global validate_password_length=6; ” 进行设值,
3、现在可以为 mysql 设置简单密码了,只要满足六位的长度即可,输入修改语句 “ ALTER USER 'root'@'localhost' IDENTIFIED BY '123456'; ” 可以看到修改成功,表示密码策略修改成功了
Q.E.D.