安装包准备好,删除cos7自带的 mysql
rpm -qa | grep -i -E mysql\|mariadb | xargs -n1 sudo rpm -e --nodeps
2)将安装包和JDBC驱动上传到/opt/module/mysql,共计**6 **个
01_mysql-community-common-5.7.16-1.el7.x86_64.rpm
02_mysql-community-libs-5.7.16-1.el7.x86_64.rpm
03_mysql-community-libs-compat-5.7.16-1.el7.x86_64.rpm
04_mysql-community-client-5.7.16-1.el7.x86_64.rpm
05_mysql-community-server-5.7.16-1.el7.x86_64.rpm
mysql-connector-java-5.1.27-bin.jar
安装 MySQL
(1)安装依赖
[itwise@node2 mysql]$ sudo rpm -ivh 01_mysql-community-common-5.7.16-1.el7.x86_64.rpm
sudo rpm -ivh 02_mysql-community-libs-5.7.16-1.el7.x86_64.rpm
sudo rpm -ivh 03_mysql-community-libs-compat-5.7.16-1.el7.x86_64.rpm
2)安装mysql-client
sudo rpm -ivh 04_mysql-community-client-5.7.16-1.el7.x86_64.rpm
3)安装mysql-server
[itwise@node2 mysql]$ sudo yum install -y libaio
[itwise@node2 mysql]$ sudo rpm -ivh 05_mysql-community-server-5.7.16-1.el7.x86_64.rpm
5072e1f5:
4)启动mysql
sudo systemctl start mysqld
5)查看 mysql 密码
[itwise@node2 mysql]$ sudo cat /var/log/mysqld.log |grep password
2配置mysql
配置只要是 root 用户+密码,在任何主机上都能登录 MySQL 数据库。
1)用刚刚查到的密码进入mysql如果报错,给密码加单引号)
[itwise@node2 mysql]$ mysql -uroot -p
3*)更改mysq*密码策略
mysql> set global validate_password_length=4;
mysql> set global validate_password_policy=0;
4)设置简单好记的密码
mysql> set password=password("123456");
5**)进入** msyql 库
mysql> use mysql
6)查询user 表
mysql> select user, host from user;
7)修改user 表,把 Host 表内容修改为**%**
mysql> update user set host="%" where user="root";
8)刷新
mysql> flush privileges;
9)退出
mysql> quit;
10)重启数据库
[itwise@node2 mysql]$ sudo systemctl restart mysqld;
rpm -qa|grep -i mysql
显示之前安装了:
MySQL-client-xxxxx
MySQL-server-xxxx
2、停止mysql服务、删除之前安装的mysql
删除命令:rpm -e –nodeps 包名
rpm -ev MySQL-xxxxx
rpm -ev MySQL-xxxx
如果提示依赖包错误,则使用以下命令尝试
rpm -ev MySQL-xxxxx --nodeps
如果提示错误:error: %preun(xxxxxx) scriptlet failed, exit status 1
则用以下命令尝试:
rpm -e --noscripts MySQL-xxxxxxxxxx
3、查找之前老版本mysql的目录、并且删除老版本mysql的文件和库
find / -name mysql
查找结果如下:
find / -name mysql
/var/lib/mysql
/var/lib/mysql/mysql
/usr/lib64/mysql
删除对应的mysql目录
rm -rf /var/lib/mysql
rm -rf /var/lib/mysql
rm -rf /usr/lib64/mysql
注意:卸载后/etc/my.cnf不会删除,需要进行手工删除
rm -rf /etc/my.cnf
4、再次查找机器是否安装mysql
rpm -qa|grep -i mysql
2)将安装包和JDBC驱动上传到/opt/module/mysql 目录中
命令:
systemctl stop mysqld #停掉MySQL
命令:
systemctl status mysqld #查看状态
主要利用mysqld的
--skip-grant-tables 选项修改my.cnf配置,
添加 skip_grant_tables=1启动设置:
打开/etc/my.cnf配置文件
添加skip_grant_tables 一行,然后保存退出
[itwise@had ~] mysqld --console --skip-grant-tables --shared-memory
[itwise@had ~]systemctl start mysqld
由于前一步启动的MySQL服务跳过了授权表,所以可以root从本机直接登录
在命令行内直接输入
[itwise@had ~]mysql
update mysql.user set authentication_string=password('123qqq...A') where user='root' and host='localhost'; #重新设置密码
命令:FLUSH PRIVILEGES; #刷新授权列表
然后输入 exit 退出mysql
注意:通过执行“FLUSH PRIVILEGES;”可使授权表立即生效,对于正常运行的MySQL服务,也可以用上述方法来修改密码,不用重启服务。本例中因为是恢复密码,最好重启MySQL服务程序,所以上述“FLUSH PRIVILEGES;”操作可跳过。
如果前面是修改/etc/my.cnf配置的方法来跳过授权表,则重置root密码后,应去除相应的设置以恢复正常:
--skip-grant-tables 选项修改my.cnf配置,
mysql -root -p新密码
正常的前提是:已知当前MySQL管理用户(root)的密码。方法:在Shell命令行下设置
使用mysqladmin管理工具,需要验证旧的密码。比如,以下操作将会把root的密码设置为A…qqq321 :
命令:mysqladmin -uroot -p password '新密码'
-- ‘原密码’
这个与新安装MySQL-server后首次修改密码时要求的方式相同,平时也可以用
命令:set
set password for root@localhost=password('1234567');
扩展一下(如果出现ERROR 3009 (HY000): Column count of mysql.user is wrong. Expected 45, found 42. Created with MySQL 50564, now running 50726. Please use mysql_upgrade to fix this error. 这种报错,是因为没更新数据库里的结构信息导致的,
mysql_upgrade -uroot -p'123qqq...A') 输入一行命令即可解决:
输入原密码;
导致的报错,可能 use用户表没更新又重新设置密码才会这样的
这个是最常见的用户授权方式:
命令: grant all ON *.* TO root@localhost identified by '新密码';
在上述方法中,需要特别注意:当MySQL服务程序以 skip-grant-tables 选项启动时,如果未执行“FLUSH PRIVILEGES;”操作,是无法通过set password或者grant方式来设置密码的。登录MySQL或者验证这两种方式时,都会看到ERROR 1045的报错: