linux mysql5.7安装和配置启动详解

自从mysql被oracle公司收购后 centos等默认不能直接通过 yum install mysql. 不过mysql 提供了社区版 这个是开源的。各大云服务厂商也通过此版本提供高性能的云数据库。

1. 配置YUM源

在MySQL官网中下载YUM源rpm安装包:[http://dev.mysql.com/downloads/repo/yum/]

下载mysql源安装包
wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm

安装mysql源
yum localinstall mysql57-community-release-el7-8.noarch.rpm

检查mysql源是否安装成功
yum repolist enabled | grep "mysql.*-community.*"
如果有消息列出

可以修改vim /etc/yum.repos.d/mysql-community.repo源,改变默认安装的mysql版本。比如要安装5.6版本,将5.7源的enabled=1改成enabled=0。然后再将5.6源的enabled=0改成enabled=1即可。

2. 安装mysql公版

yum install mysql-community-server -- yum安装

mysqld --version --检查安装

通过yum形式安装时 mysql会有个日记文件 记录操作时候的输出信息 比如 在第一次安装时候会给root用户默认生成个符合标准的密码
可以在 /var/log/mysqld.log 查看 。这个日记很强大 如果后面你无法启动mysql 或者忘记密码 msql出错都可以优先来这里看看为什么

3. 配置自定义的数据库目录 (如果想默认就跳过)

通过yum形式安装时 mysql 默认安装 var目录下 以后想扩充容量可能不方便。可以自己建议数据库目录
比如 我想定义 /data/mysql 是数据库存在的地方

mkdir /data/mysql_mine -- 建立base目录

mkdir /data/mysql_mine/data -- 建立数据目录

chown -R mysql:mysql /data/mysql --文件夹属于mysql用户 yum已经帮你添加了

mysql5.7和之前版本不同,很多资料上都是这个命令:mysql_install_db --参数 当然也可以用 但现在 mysql推荐使用
mysqld --initialize --参数 命令 其实也是套了个壳

mysqld --initialize --user=mysql --basedir=/data/mysql_mine --datadir==/data/mysql_mine/data

--user 启动mysql的用户

--basedir mysql安装目录

--datadir mysql数据仓库目录

可能会再次初始化此 因为第一次是yum帮你初始化的 。第二此是手动 获得的信息可以在logs查看 主要是那个密码 不去记也没事 可以强制修改自己要的

vim /etc/my.cnf -- 修改mysql配置

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html

[mysqld]

#设置utf8编码
character-set-server = utf8
collation-server = utf8_general_ci
skip-character-set-client-handshake
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M

#设置数据目录 连接的socket
datadir=/data/mysql_mine/data
socket=/data/mysql_mine/mysql.sock


#skip-grant-tables
validate_password_length=6
validate_password_policy=0
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

log-error=/data/mysql_mine/logs/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

[mysql]
socket=/data/mysql_mine/mysql.sock  

大致说下 [mysqld]下的是mysqld的配置 [mysql]是mysql的 因为是yum安装的一些bin share 文件还是老地方引用 。没有目录就自己mkdir 记得权限给mysql 。如果想统一指定 可能会导致启动失败 可以看log找百度解决 自行传送门

如果你不知道你的root的密码是什么 请打开 skip-grant-tables的注释,跳过密码验证 免密码登录。

3. 开启mysql

systemctl start mysqld

systemctl status mysqld --检查状态 出错请看日记

mysql -uroot -p 或者 mysql 免密码

4. 修改账户信息(如果想默认就跳过)

show variables like 'validate_password%'; -- 检查密码验证配置
如果有列表说明你安装了 没的话也没事 安装 验证密码 插件
install plugin validate_password soname 'validate_password.so'; --安装插件
show variables like 'validate_password%'; -- 检查密码验证配置

+--------------------------------------+--------+
| Variable_name | Value |
+--------------------------------------+--------+
| validate_password_dictionary_file | |
| validate_password_length | 8 |
| validate_password_mixed_case_count | 1 |
| validate_password_number_count | 1 |
| validate_password_policy | MEDIUM |
| validate_password_special_char_count | 1 |
+--------------------------------------+--------+
6 rows in set (0.00 sec)

有以上信息说明可以配置 也可以通过 SHOW PLUGINS 查看是否安装

变量说明
validate_password_dictionary_file密码字典文件,一个密码一行,不区别大小写。在其中的密码被拒绝。
validate_password_length密码长度
validate_password_policy密码策略:0 or LOW(只验证长度),MEDIUM (除字典都要 这是默认),STRONG (字典也要)
validate_password_number_count数字的个数
validate_password_mixed_case_count是否大小写混合
validate_password_special_char_count特殊字符的个数

我在上述的my.cnf中使用简单配置 12346就可以通过 方便开发 实际当中按需定义 。

配置完密码验证后

use mysql

update user set authentication_string=password('123456') where user='root' and host='localhost'; --设置localhost的root密码为123456

特别提醒注意的一点是,新版的mysql数据库下的user表中已经没有Password字段了而是将加密后的用户密码存储于authentication_string字段

flush privileges; --刷新特权

SELECT HOST,USER,authentication_string FROM USER; -- 查询当前有哪些账户

开通对外账号 方便sql可视化工具远程登录
GRANT ALL ON *.* TO ’admin‘@'%' WITH GRANT OPTION; -- 授权给admin账户所有权限也附上授权其他账户功能
admin账户会自动创建 。当然你也可以给root用户这么做。
%代表任意ip WITH GRANT OPTION 代表授权功能

FLUSH PRIVILEGES; -- 刷新特权

SELECT HOST,USER,authentication_string FROM USER; -- 再次查询

发现你刚新加的账户说明成功! 如果有失败请参考 传送门

exit --退出

接下来你可以使用你本地root或者远程admin账户操作数据库 注意开通防火墙3306

5. 开机自动启动

systemctl enable mysqld

systemctl daemon-reload

结论 自行安装会碰很多坑 特别5.7比5.6 yum安装确实帮我们省事了不少 比如systemctl 命令可以多加利用 在基础上修改
启动不了就多看日记 多百度查 顺便介绍下 mysql可视化工具 win的SQLyog mac的sequel 。

转载于:https://www.cnblogs.com/lanbosm/articles/8727113.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值