centos 7 安装mysql 详细教程

408 阅读3分钟

一、安装必要的依赖组件

yum install –y autoconf automake imake libxml2-devel expat-devel cmake gcc gcc-c++ libaio libaio-devel bzr bison libtool ncurses5-devel

二、下载 YUM Repository

wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm

三、加入到系统

centos7 默认是没有 MySQL 相关的 repository,因此须要咱们手动将刚刚下载好的 repository 加入到系统中去。

yum localinstall mysql80-community-release-el7-3.noarch.rpm

四、确认是否成功

yum repolist all | grep mysql

微信图片_20220812230901.jpg

以上,能够看到全部 MySQL 版本的启用状态,目前是 mysql80-community 处于 enabled 状态。假设要安装 MySQL5.7 版本,须要启用 mysql57-community,而且禁用 mysql80-community。

yum-config-manager --enable mysql57-community
yum-config-manager --disable mysql80-community

QQ截图20220812231323.png

若是系统提示:

-bash: yum-config-manager: command not found

那就须要手动编辑:

vim /etc/yum.repos.d/mysql-community.repo

里面的内容简单易懂,根据本身的需求,改变 enabled 的值,其余内容不用改动。修改完成后,以防改错,能够运行以下命令来查看究竟启用了哪一个版本的 MySQL:

yum repolist enabled | grep mysql

五、安装 MySQL 服务

yum install mysql-community-server

中间会有两次确认,都输入“y”便可。一切顺利,启动 MySQL 服务。

systemctl start mysqld.service

查看状态

systemctl status mysqld.service

如果报错的话执行以下命令

rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022

停止服务

systemctl stop mysqld.service

重启 MySQL

systemctl restart mysqld.service

再重新启动就好了。

QQ截图20220812234534.png

以上mysql就安装成功了。

MySQL 的安装目录

运行脚本:/usr/bin

mysqld 服务脚本: /usr/sbin

MySQL 数据目录:/var/lib/mysql

MySQL 日志文件:/var/log/mysqld.log

六、设置开机自启动

systemctl enable mysqld

刷新所有修改过的配置文件

systemctl daemon-reload

七、初始化 root 帐户

至此,MySQL 服务安装成功了,可是还不知道 root 密码,须要重置。

可是,初次安装 MySQL,会自动生成一个临时密码,这个密码被写入在了日志文件中,运行命令查看:

cat /var/log/mysqld.log | grep 'temporary password'

知道初始密码后,必须立刻修改。凭此临时密码,先登陆:

mysql -u root -p

登陆进去后,除了修改密码,其余的操做是不被容许的,因此先把新密码设置好:

SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');

至此,root 密码被修改了,可是 root 帐户还不能远程登陆。 解决的办法有两个,其一是将 root 帐户的 host 改成“%”,能够直接用如下的 UPDATE 语句:

UPDATE mysql.user SET host = '%' WHERE user='root';

其二,是新建一个帐户,并给帐户受权:

CREATE USER 'admin'@'%' IDENTIFIED BY 'new_password';
GRANT ALL ON *.* TO 'admin'@'%';

注意 :以上都须要最后运行一条命令才能生效:

FLUSH PRIVILEGES;

实际上,应该严禁直接使用 root 帐户,仅限运维人员本地登陆才是对的。因此,在实际工做中,能够更为精细化的管理 MySQL 的权限,防止“悲剧”发生。

八、设置默认编码

设置默认编码为 utf-8(mysql 安装后默认不支持中文)

vim /etc/my.cnf  进入文件后添加下面的配置即可[mysqld]
character-set-server=utf8
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8

重启 MySQL 服务并进入 MySQL

systemctl restart mysqld
mysql -uroot -p
show variables like 'character%';
  • 出现如下则说明编码修改完成
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

九、退出mysql

exit 或者 quit 退出 mysql

mysql> quit