MySQL的卸载
1. 查看是否安装过MySQL
如果你是用rpm安装, 检查一下RPM PACKAGE:
rpm -qa | grep -i mysql # -i 忽略大小写
检查mysql service:
systemctl status mysqld.service
2. 卸载
- 关闭MySQL 服务
systemctl stop mysqld.service
- 查看当前MySQL状态
pm -qa | grep -i mysql
# 或
yum list installed | grep mysql
- 卸载上述命令查询出的已安装程序
yum remove mysql-xxx mysql-xxx mysql-xxx mysqk-xxxx
- 查看是否卸载干净(务必卸载干净,反复执行 )
rpm -qa | grep -i mysql 确认是否有卸载残留
- 删除 mysql 相关文件
查找相关文件
find / -name mysql
删除上述命令查找出的相关文件
rm -rf xxx
删除 my.cnf
rm -rf /etc/my.cnf
下载指定版本MySQL
MySQL的4大版本
- MySQL Community Server 社区版本,开源免费,自由下载,但不提供官方技术支持,适用于
大多数普通用户。 - MySQL Enterprise Edition 企业版本,需付费,不能在线下载,可以试用30天。提供了更多的
功能和更完备的技术支持,更适合于对数据库的功能和可靠性要求较高的企业客户。 - MySQL Cluster 集群版,开源免费。用于架设集群服务器,可将几个MySQL Server封装成一个
Server。需要在社区版或企业版的基础上使用。 - MySQL Cluster CGE 高级集群版,需付费。
- 下载地址
官网: https://www.mysql.com - 打开官网,点击DOWNLOADS
然后,点击 MySQL Community(GPL) Downloads
- 点击 MySQL Community Server
- 在General Availability(GA) Releases中选择适合的版本
解压缩下载好的tar包
解压rpm安装包(红框为抽取出来的安装包)
CentOS7下检查MySQL依赖
- 检查/tmp临时目录权限(*必不可少)
由于mysql安装过程中,会通过mysql用户在/tmp目录下新建tmp_db文件,所以请给/tmp较大的权限。执
行 :
chmod -R 777 /tmp
- 安装前,检查依赖
rpm -qa|grep libaio
rpm -qa|grep net-tools
如果存在libaio包如下:
如果存在net-tools包如下:
如果不存在需要到centos安装盘里进行rpm安装。
yum install libaio
yum install net-tools
CentOS7下MySQL安装过程
- 将安装程序拷贝到/opt目录下
- 在mysql的安装文件目录下执行:(必须按照顺序执行)
rpm -ivh mysql-community-common-8.0.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.25-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.25-1.el7.x86_64.rpm
- 查看MySQL版本
执行如下命令,如果成功表示安装mysql成功。类似java -version如果打出版本等信息
mysql --version
# 或
mysqladmin --version
服务的初始化
为了保证数据库目录与文件的所有者为 mysql 登录用户,如果你是以 root 身份运行 mysql 服务,需要执
行下面的命令初始化
mysqld --initialize --user=mysql
说明: --initialize 选项默认以“安全”模式来初始化,则会为 root 用户生成一个密码并将 该密码标记为过
期 ,登录后你需要设置一个新的密码。生成的 临时密码 会往日志中记录一份。
查看密码(root@localhost: 后面就是初始化的密码):
cat /var/log/mysqld.log
启动MySQL,查看状态
# 加不加.service后缀都可以
启动:systemctl start mysqld.service
关闭:systemctl stop mysqld.service
重启:systemctl restart mysqld.service
查看状态:systemctl status mysqld.service
设置服务自启动
查看MySQL服务是否自启动
systemctl list-unit-files|grep mysqld.service
设置开机自启动
systemctl enable mysqld.service
修改配置
修改端口号
vim /etc/my.cnf
MySQL登录
通过 mysql -hlocalhost -P3306 -uroot -p 进行登录,在Enter password:录入初始化密码
修改密码
因为初始化密码默认是过期的,所以查看数据库会报错
修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
5.7版本之后(不含5.7),mysql加入了全新的密码安全机制。设置新密码太简单会报错。
设置远程登录
use mysql;
select Host,User from user;
可以看到root用户的当前主机配置信息为localhost
Host列指定了允许用户登录所使用的IP,比如user=root Host=192.168.1.1。这里的意思就是说root用户只能通过192.168.1.1的客户端去访问。 user=root Host=localhost,表示只能通过本机客户端去访问。而 %是个 通配符 ,如果Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。如果 Host=% ,表示所有IP都有连接权限。
注意:在生产环境下不能为了省事将host设置为%,这样做会存在安全问题,具体的设置可以根据生产
环境的IP进行设置。
update user set host = '%' where user ='root';
Host修改完成后记得执行flush privileges使配置立即生效:
flush privileges;