linux下通过rpm包安装mysql (另外两种是 yum和源码包安装,源码包安装最优)
1.安装前,我们可以检测系统是否自带安装 MySQL:rpm -qa | grep mysql
2.如果你系统有安装,那可以选择进行卸载:普通删除模式 rpm -e mysql
强力删除模式,如果使用上面命令删除时,提示有依赖的其它文件,则用该命令可以对其进行强力删除
rpm -e –nodeps mysql
3.下载地址:(x选择下载位置)
(报错:wget command not found ,通过yum -y install wget)
4.安装:rpm -ivh mysql57-community-release-el7-9.noarch.rpm yum install mysql-server
报错:Error: Package: akonadi-mysql-1.9.2-4.el7.x86_64
Requires: mariadb-server
Removing: 1:mariadb-server-5.5.52-1.el7.x86_64
mariadb-server = 1:5.5.52-1.el7
Obsoleted By: mysql-community-server-5.6.38-2.el7.x86_64 (mysql56-community)
Not found
Updated By: 1:mariadb-server-5.5.56-2.el7.x86_64 (base)
mariadb-server = 1:5.5.56-2.el7
You could try using –skip-broken to work around the problem
You could try running: rpm -Va –nofiles –nodigest
解决:rpm -qa | grep -i mysql
查看当前安装的mysql包
如果存在mariadb-server-5.5.60-1.el7_5.x86_64等包,需要先删除。 yum -y remove mariadb-libs
然后再执行yum install mysql-server
报错:[Errno 256] No more mirrors to try.
解决:yum update 更新一遍安装库,然后继续执行安装,成功
5.安装成功后,初始化mysql mysqld –initialize
(yum报错another app is currently holding the yum lock;waiting for it to exit:#rm -f /var/run/yum.pid强制关闭进程)
6.启动 MySQL:
service mysqld start
报错:[[email protected] local]# service mysqld start
Redirecting to /bin/systemctl start mysqld.service
Job for mysqld.service failed because the control process exited with error code. See “systemctl status mysqld.service” and “journalctl -xe” for details.
解决:查看报错日志,more /var/log/mysqld.log
在mysql错误日志里出现:[ERROR] InnoDB: The innodb_system data file ‘ibdata1’ must be writable,及ibdata1必须可写那么解决方案自然是更改对应权限
mysql5.7版本以后是chmod -R 777 /var/lib/mysql
再次启动mysql成功,查看状态: service mysqld status
7.验证 MySQL 安装:使用 mysqladmin 工具来获取服务器状态:mysqladmin –version如果以上命令执行后未输入任何信息,说明你的Mysql未安装成功。
8.连接数据库,mysql -uroot -p
(1)报错(ERROR 1045 (28000): Access denied for user [email protected] (using password: YES))
修改密码:
步骤:
[1].停止mysql服务:service mysqld stop
[2].修改配置文件无密码登录:vi /etc/my.cnf
[3].在最尾部加上([mysqld]后面任意一行添加):skip-grant-tables
[4].保存,启动mysql:service mysqld start
[5].登录mysql:mysql
[6].选中mysql数据库:mysql> use mysql;
[7].首先更新root密码为空字符串:update user set authentication_string=’’ where user=’root’;
[8].退出,删除之前步骤加上的 “skip-grant-tables” 然后重启mysql:
// 1,退出:exit // 2,修改,删除最后的skip-grant-tablesvim /etc/my.cnf // 3,重启service mysqld restart
[9].然后在登陆Mysql:mysql -uroot
[10].使用ALTER修改root用户密码,方法:ALTER user [email protected] IDENTIFIED BY ‘你的密码’;
9.修改数据库字符集
(1).登陆mysql查询当前字符集:
mysql> show variables like ‘char%’;
(2).编辑my.con配置文件
vim /etc/my.cnf
添加:1
2
3
4
5
6[client]
default-character-set=utf8mb4
[mysql]
default-character-set=utf8mb4
[mysqld]
character-set-server=utf8mb4
(3)保存退出,重新启动mysql:service mysqld restart
a.centos7 开启3306端口systemctl start firewalld 开启防火墙
firewall-cmd –zone=public –add-port=3306/tcp –permanent
firewall-cmd –reload–zone #作用域
–add-port=80/tcp #添加端口,格式为:端口/通讯协议
–permanent #永久生效,没有此参数重启后失效
b. mysql授权GRANT ALL PRIVILEGES ON . TO [email protected]%’ IDENTIFIED BY ‘root’ WITH GRANT OPTION;
FLUSH PRIVILEGES;