在Linux上,使用MySQL的yum仓库,安装MySQL

参考文章:

安装步骤:

1、远程登录服务器

1
ssh xx.xxx.xx.xxx -l root

2、去指定目录,下载MySQL提供的RPM包

  • rpm包版本:https://dev.mysql.com/downloads/repo/yum/

  • 查看阿里云的centos是什么版本:

    1
    lsb_release -a
  • 因为是7,所以选这个版本,点击download

    1

  • 选择安装路径

    1
    cd usr/local/src
  • 把下载链接拷贝下来,在服务器上直接下载:

    1
    wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

    2

3、下载后就是一个 mysql57-community-release-el7-11.noarch.rpm 文件,可以用以下命令查看该文件有哪些包

1
rpm -qpl mysql57-community-release-el7-11.noarch.rpm

3

4、用rpm安装

1
rpm -ivh mysql57-community-release-el7-11.noarch.rpm

4

5、查看可安装的mysql版本

1
yum repolist all | grep mysql

5

  • 如图,现在MySQL 5.7是enabled,其他的都是disabled,所以安装时会自动安装5.7版本。
  • 如果想要安装5.6版本,则需修改/etc/yum.repos.d/mysql-community.repo文件, 设置mysql 5.6下的enabled=1
1
vim /etc/yum.repos.d/mysql-community.repo
  • 修改后再查看可安装的版本:

6

1
yum repolist enabled | grep mysql

命令可直接查看enabled版本:

7

6、安装MySQL

1
sudo yum install mysql-community-server

7、启动mysql服务

sudo service mysqld 或者/etc/init.d/mysqld start

8、设置开机启动

  • 添加开机启动:chkconfig --add mysqld;

  • 开机启动:chkconfig mysqld on;

  • 查看开机启动设置是否成功:

    chkconfig --list | grep mysql* mysqld

  • 查看状态:service mysqld status

  • 停止: service mysqld stop

  • 配置文件放在了 /etc/MySQL/my.cnf, 启动服务,关闭服务及重启脚本在 /etc/init.d/mysql

9、修改字符集

mysql配置文件/etc/my.cnf中加入default-character-set=utf8

10、创建root管理员

mysqladmin -u root password *******

  • 在mysql官方文档里找到答案了,原来mysql会为root生成一个默认密码,并且存储在log文件里。通过sudo grep ‘temporary password’ /var/log/mysqld.log可以看到这个密码。

登录:
mysql -u root -p

1
2
3
4
5
6
7
8
9
10
11
# 获取临时密码
grep 'temporary password' /var/log/mysqld.log
# 使用临时密码登录
mysql -u root -p
# 修改root账户的密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '123456';
#如果只是修改为一个简单的密码,会报以下错误:
ERROR 1819 (HY000): Your password does not satisfy the current policy requirements
#此时应修改validate_password_policy参数的值
mysql> set global validate_password_policy=0;
Query OK, 0 rows affected (0.00 sec)

10、允许远程访问设置

  • 开放防火墙的端口号
  • mysql增加权限:mysql库中的user表新增一条记录host为“%”,user为“root”。
1
2
3
mysql>use mysql;
mysql>UPDATE user SET `Host` = '%' WHERE `User` = 'root' LIMIT 1;
mysql>flush privileges;

此时有可能mysql -u root -p会报错
则:
service mysqld stop 停止mysql
mysqld_safe --user=root --skip-grant-tables 跨表访问(不需密码)
mysql -u root
use mysql
删掉除了host=%以外的数据
flush privileges;刷新权限

备注:

如果mysql起不来了:

1
ps -A|grep mysql

显示类似:

1
2
1829 ? 00:00:00 mysqld_safe
1876 ? 00:00:31 mysqld

则:

1
2
3
4
#kill -9 1829
#kill -9 1876
#/etc/init.d/mysql restart
#mysql -u root -p
您的支持将鼓励我继续创作~