linux安装mysql(完整图文笔记)
安装mysql8
基本命令
安装 : yum install mysql-community-server
启动 : service mysqld start/restart
停止 : service mysqld stop
查看状态: service mysqld status
本文包括: mysql安装 修改密码 开启远程访问 忘记密码后重置密码 卸载mysql
【安装步骤】
- contos7默认安装了mariadb数据库,这里把他移除:yum remove mariadb-libs.x86_64
- 创建文件目录 mkdir /etc/mysql
- 获取下载链接
4. 在该目录下 下载刚刚的安装链接。wget https://dev.mysql.com/get/mysql80-community-release-el7-1.noarch.rpm 下载完成后,会得到这个文件名,直接yum localinstall把它添加到本地。
5. 这时可以先看添加成功没有 yum search mysql
6. 安装:yum install mysql-community-server 启动测试: service mysqld start service mysqld status
【修改密码】
1. 刚刚启动成功之后, 用命令查看默认密码并且登录
查看:cat /var/log/mysqld.log | grep password
登陆:mysql -u root -p 然后输入密码
2. 修改密码
set global validate_password.policy=0;
set global validate_password.length=1;
ALTER USER "root"@"localhost" IDENTIFIED BY "1234"; // 新密码为1234
3. exit 退出 mysql -u root -p 然后输入密码即可登录
【授权远程访问】
首先确保关闭了防火墙 并重启mysql。
1. 选择数据库 use mysql show tables;可以看到很多表
2. 修改连接规则:host表示允许哪个ip来连接,user表示哪个数据库。例如 mysql –uroot –p 连的就是叫root数据库。
3. 查看规则 select host,user from user \G; 修改规则 update user set host= '%' where user = 'root';
4. mysql5.7.6之后就修改了加密规则,我这里是mysql8.0.12 所以需要更改加密方式。
update user set plugin='mysql_native_password' where user ='root';
5. 刷新权限 flush privileges;
6. 测试外网连接mysql服务器。
(如果外网连接失败的话,先按照【重置密码】执行一遍,再执行【修改密码】,只是ALTER USER "root"@"localhost" IDENTIFIED BY "1234";要替换成ALTER USER "root"@"%" IDENTIFIED BY "1234";)
【重置密码】
1. 开启免密码登陆 修改my.cnf文件 默认在/etc/my.cnf。
vim /etc/my.cnf 在【mysqld】模块下面添加:skip-grant-tables 保存退出。
2. 重启服务,使配置生效 。 service mysqld restart
3. 登陆 mysql -u root -p //不输入密码直接敲回车键
4. 选择数据库 use mysql 把密码置空(因为免密登陆时不能直接修改密码)
update user set authentication_string = '' where user = 'root';
5. 退出 quit 把/etc/my.cnf免密删掉。 重启服务 service mysqld restart
6. 登陆 mysql -u root -p //直接敲回车键,因为刚刚置空密码了。
7. 和上面修改密码的步骤一样,重复一遍就好了~ 哈哈!
【卸载mysql】
首先 , 停止mysql service mysqld stop
总共分两步: 1.卸载mysql组件 2.删除相关文件夹
【第一步卸载mysql组件】 【 查看MySQL组件 】 [root@localhost ~]# rpm -qa | grep -i mysql mysql-community-libs-8.0.12-1.el7.x86_64 mysql-community-common-8.0.12-1.el7.x86_64 mysql-community-client-8.0.12-1.el7.x86_64 mysql-community-server-8.0.12-1.el7.x86_64 【删除】 [root@localhost ~]# rpm -ev mysql-community-server-8.0.12-1.el7.x86_64 Preparing packages... mysql-community-server-8.0.12-1.el7.x86_64 warning: /etc/my.cnf saved as /etc/my.cnf.rpmsave 【删除】 [root@localhost ~]# rpm -ev mysql-community-client-8.0.12-1.el7.x86_64 Preparing packages... mysql-community-client-8.0.12-1.el7.x86_64 【删除失败】 [root@localhost ~]# rpm -ev mysql-community-common-8.0.12-1.el7.x86_64 error: Failed dependencies: mysql-community-common(x86-64) >= 8.0.0 is needed by (installed) mysql-community-libs-8.0.12-1.el7.x86_64 【继续查看】 [root@localhost ~]# rpm -qa | grep -i mysql mysql-community-libs-8.0.12-1.el7.x86_64 mysql-community-common-8.0.12-1.el7.x86_64 【删除】 [root@localhost ~]# rpm -e --noscripts mysql-community-libs-8.0.12-1.el7.x86_64 [root@localhost ~]# 【删除】 [root@localhost ~]# rpm -e --noscripts mysql-community-common-8.0.12-1.el7.x86_64 [root@localhost ~]# 【查看】 [root@localhost ~]# rpm -qa | grep -i mysql [root@localhost ~]# 【第二步:删除相关目录】 【查看】 [root@localhost ~]# find / -name mysql /etc/mysql /etc/selinux/targeted/active/modules/100/mysql /var/lib/mysql /var/lib/mysql/mysql 【删除】 [root@localhost ~]# rm -rf /etc/mysql [root@localhost ~]# rm -rf /etc/selinux/targeted/active/modules/100/mysql [root@localhost ~]# rm -rf /var/lib/mysql [root@localhost ~]# find / -name mysql 【再次检查,什么都没有说明卸载成功了】 [root@localhost ~]# rpm -qa | grep -i mysql [root@localhost ~]#
安装mysql5.6
1. 下载mysql https://dev.mysql.com/downloads/mysql/5.6.html#downloads
2. 上传解压
3. 删除安装包, 重命名解压后的文件
4. 先检查是否有mysql用户组和mysql用户,没有就添加有就忽略: groups mysql
添加用户组和用户 groupadd mysql && useradd -r -g mysql mysql
5. 进入mysql目录修改权限 cd mysql/ chown -R mysql:mysql ./
6. 安装依赖库 yum -y install autoconf && yum install libaio* -y && yum -y install numactl
7. 执行安装脚本 ./scripts/mysql_install_db --user=mysql
8. 脚本安装完之后修改当前目录拥有者为root用户,修改data目录拥有者为mysql
chown -R root:root ./ && chown -R mysql:mysql data
9. 创建默认日志文件 mkdir /var/log/mariadb && touch /var/log/mariadb/mariadb.log
10. my.cnf设置为用户可读写,其他用户不可写 。 chmod 644 /usr/local/mysql/my.cnf
11. 启动mysql ./support-files/mysql.server start
12. 修改密码 ./bin/mysqladmin -u root -h localhost.localdomain password '123456'
13. 登陆mysql ./bin/mysql -h127.0.0.1 -uroot -p123456
14. 授权远程登陆 grant all privileges on *.* to root@'%' identified by '123456'; flush privileges;
【卸载】
1. rm -rf /root/.mysql_sercret
2. rm -rf /var/lib/mysql
3. rm -rf /usr/local/mysql
【mysql5.6 开机自启动】
1,将服务文件复制一份到init.d下,并重命名为mysqld
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
2,对文件赋予执行权限
chmod +x /etc/init.d/mysqld 或 chmod 777 /etc/init.d/mysqld
3,增加mysqld服务
chkconfig --add mysqld
4,查询mysqld服务情况
chkconfig --list mysqld
5, 如果3,4,5 为off:
chkconfig --level 345 mysqld on
6, 重启服务器验证:reboot
安装mysql5.7
1. 解压 tar -zxvf mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.34-linux-glibc2.12-x86_64 mysql
2. 先检查是否有mysql用户组和mysql用户,没有就添加有就忽略: groups mysql
添加用户组和用户 groupadd mysql && useradd -r -g mysql mysql
3. 创建数据目录并赋予权限
mkdir -p /data/mysql
chown mysql:mysql -R /data/mysql
4. 修改配置文件 vim /etc/my.cnf
[mysqld] bind-address=0.0.0.0 port=3306 user=mysql basedir=/usr/local/mysql datadir=/data/mysql socket=/tmp/mysql.sock log-error=/data/mysql/mysql.err pid-file=/data/mysql/mysql.pid #character config character_set_server=utf8mb4 symbolic-links=0 explicit_defaults_for_timestamp=true
5. 初始化
cd /usr/local/mysql/bin/
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
6. 查看密码
cat /data/mysql/mysql.err
7. 启动mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
cd /usr/local/mysql/bin/ && service mysql start
修改密码
1. 登录
./mysql -u root -p
2. 修改密码
SET PASSWORD = PASSWORD('123456');
ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
FLUSH PRIVILEGES;
3. 刷新规则允许外部访问
use mysql #访问mysql库
update user set host = '%' where user = 'root'; #使root能再任何host访问
FLUSH PRIVILEGES; #刷新
卸载
1. kill -9 pid
2. rm -rf /root/.mysql_sercret
3. rm -rf /var/lib/mysql
4. rm -rf /usr/local/mysql
5. rm -rf /data/mysql
。