Linux安装mysql以及遇到的问题解决办法

2023-05-16

话不多说,直接开干:

1.mysql下载地址(这里使用的是5.7.28)

官网地址:   https://dev.mysql.com/downloads/mysql/
百度云地址: https://pan.baidu.com/s/1kGXBgt1KP8UzD68iJ-jgFg
提取码:href

2.解压安装包tar -zxvf  mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz

   改名mv mysql-5.7.28-linux-glibc2.12-x86_64   mysql-5.7.28

3.创建用户组,用户

   groupadd mysql

   useradd -r -g mysql mysql

4.创建mysql数据仓库目录

   mkdir mysql_data(目录随便,配置正确就好)

   我的路径  basedir=/home/software/soft/mysql/mysql-5.7.28

                   datadir=/home/software/soft/mysql/mysql_data/

5.编辑my.cnf文件

   5.7版本后,mysql取消了此文件,这里手动添加了一个

vi /etc/my.cnf   粘贴如下的内容

# http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
# *** DO NOT EDIT THIS FILE. It's a template which will be copied to the
# *** default location during install, and will be replaced if you
# *** upgrade to a newer version of MySQL.

[mysqld]

# 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 = 10G

# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
log_bin
character-set-server=utf8
collation-server=utf8_bin
init-connect='SET NAMES utf8'
# These are commonly set, remove the # and set as required.
basedir = /home/software/soft/mysql/mysql-5.7.28
datadir = /home/software/soft/mysql/mysql_data
port = 3306
server_id = 22206
socket = /home/software/soft/mysql/mysql_data/mysql.sock
binlog-format = ROW
# 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
log_bin_trust_function_creators = on
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

lower_case_table_names=1

注意这三个参数:
basedir = /home/software/soft/mysql/mysql-5.7.28 (mysql安装路径)
datadir = /home/software/soft/mysql/mysql_data (mysql数据仓库)
socket = /home/software/soft/mysql/mysql_data/mysql.sock (数据仓库路径下)

6.设置目录访问权限

mysql安装目录执行(注意有个点:代表所有文件)

    chown -R mysql .

    chgrp -R mysql .

    chown -R mysql  /home/software/soft/mysql/mysql_data(数据仓库路径

7.配置参数

mysql安装目录执行(basedir、datadir对应修改)

bin/mysqld --initialize --user=mysql --basedir=/home/software/soft/mysql/mysql-5.7.28 --datadir=/home/software/soft/mysql/mysql_data/

bin/mysqld --initialize --user=mysql --basedir=/home/software/soft/mysql/mysql-5.7.28 --datadir=/home/software/soft/mysql/mysql_data/

这里八成会报错:按照提示改就好   /etc/my.cnf at line 5  大多是没有注释完

错误2:bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

 解决方案:  yum install -y libaio  //安装后在初始化就OK了

也有的人说:使用这个命令才能解决这个问题,yum install -y libaio.so.1

这边博主我是用的第一个命令,就可以了,如果你用的第一个没有用的话,那你再用第二个命令试试吧~

 

再次执行 :   bin/mysqld --initialize --user=mysql --basedir=/home/software/soft/mysql/mysql-5.7.28 --datadir=/home/software/soft/mysql/mysql_data/

成功后记录一下这个临时密码,后面改密码需要  :4hwro%Z<6XBj

在mysql安装路径下继续配置:
bin/mysql_ssl_rsa_setup --datadir=/home/software/soft/mysql/mysql_data/

cp  support-files/mysql.server    /etc/init.d/mysql

vi /etc/init.d/mysql

  • 修改 basedir=/home/software/soft/mysql/mysql-5.7.28(安装路径)
  • 修改 datadir=/home/software/soft/mysql/mysql_data/(数据仓库)

7.启动

/etc/init.d/mysql start(启动)

mysql -hlocalhost -uroot -p(如果如图报错)

执行:ln -s /home/software/soft/mysql/mysql-5.7.28/bin/mysql      /usr/bin  (前面的地址安装路径,后面的地址可以不变)

然后再     mysql -hlocalhost -uroot -p(重新登陆),如果报这个错:

ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)

方法1:

mv 指令移动生成的.sock 和 .sock.lock 文件到/tmp (默认目录)

生成的.sock 和 .sock.lock 在数据仓库目录里面

mv /home/software/soft/mysql/mysql_data/mysql.sock /tmp
mv /home/software/soft/mysql/mysql_data/mysql.sock.lock /tmp

方法2:
也可以:
[mysqld]是针对服务端进行设置
[mysql]是针对客户端访问进行设置;
vi /etc/my.cnf 加入

    [client]
    default-character-set=utf8
    socket=/home/usr/java/mysql_data/mysql.sock
    port=3306


    [mysql]
    default-character-set=utf8
    socket=/home/usr/java/mysql_data/mysql.sock
    port=3306
方法3:部分可以重启一下服务:service mysql restart 可以解决

mysql -hlocalhost -uroot -p(再重新登陆,不出意外已经OK)

8.启动后修改数据库相关配置:

修改密码(password(‘root’)) root 即为密码

mysql>      set password=password(‘root’);

设置root账户的host地址(修改了才可以远程连接)

赋权等:

grant all privileges on *.* to 'root'@'%' identified by 'root';

flush privileges;

 

此时 库已经OK

做个校验:

use mysql;

select host,user from user;

这里就可以使用远程连接测试了,如果连接不上,关闭防火墙

Centos6.9

    (service iptables stop)
    永久关闭 chkconfig iptables off

Centos7

    设置开机启用防火墙:systemctl enable firewalld.service
    设置开机禁用防火墙:systemctl disable firewalld.service
    启动防火墙:systemctl start firewalld
    关闭防火墙:systemctl stop firewalld
    检查防火墙状态:systemctl status firewalld
9.配置mysql自动启动

  • chmod 755 /etc/init.d/mysql
  • chkconfig --add mysql
  • chkconfig --level 345 mysql on

一切搞定,结束!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux安装mysql以及遇到的问题解决办法 的相关文章

  • FileOutputStream.close() 中的设备 ioctl 不合适

    我有一些代码可以使用以下命令将一些首选项保存到文件中FileOutputStream 这是我已经写了一千遍的标准代码 FileOutputStream out new FileOutputStream file try BufferedOu
  • 如何使用 vitess 仅对特定表进行分片

    我创建了一个包含三个表的未分片键空间 现在我想对前两个表的键空间进行分片 但不想对第三个表进行分片 如何才能做到这一点 Vitess 文档不包含任何与此相关的信息或示例 请帮忙 Thanks vitess 中的垂直分片与水平分片类似 您应该
  • 即使使用“autoReconnect=true”,MySql JDBC 也会超时[重复]

    这个问题在这里已经有答案了 有时 我的 Java Tomcat6 Debian Squeeze 应用程序无法与 MySql 服务器通信 Tomcat 应用程序位于前端服务器上 而 MySql 位于单独的 仅限 MySql 的机器上 一个典型
  • 如何将ElasticSearch与MySQL集成?

    在我的一个项目中 我计划将 ElasticSearch 与 MySQL 结合使用 我已经成功安装ElasticSearch 我可以单独管理ES中的索引 但我不知道如何用 MySQL 实现同样的功能 我读过一些文件 但我有点困惑 没有明确的想
  • 在 C 中使用单个消息队列是否可以实现双向通信

    我希望服务器向客户端发送一些消息 并让客户端确认它 我被分配了这个任务 我可以在 C linux 中使用单个消息队列来完成它还是我需要创建两个 谢谢 是的 可以使用 sysV 消息队列来做到这一点 从您之前的问题来看 您正在使用该队列 您可
  • 如何从shell脚本自动登录MySQL?

    我有一个 MySQL 服务器 其中有一个用户和密码 我想在 shell 脚本中执行一些 SQL 查询而不指定密码 如下所示 config sh MYSQL ROOT root MYSQL PASS password mysql sh sou
  • docker 非 root 绑定安装权限,WITH --userns-remap

    all 尝试让绑定安装权限正常工作 我的目标是在容器中绑定安装卷 以便 a 容器不以 root 用户身份运行入口点 二 docker daemon 配置了 userns remap 这样容器 主机上没有 root c 我可以绑定挂载和读 写
  • SQL不允许表中有重复记录

    如何使其不添加重复项 我想让它通过 ID 之外的所有其他列进行检查 我希望这个无效 ID col1 col2 col3 1 first middle last ID col1 col2 col3 2 first middle last 我希
  • 使用 \r 并打印一些文本后如何清除控制台中的一行?

    对于我当前的项目 有一些代码很慢并且我无法使其更快 为了获得一些关于已完成 必须完成多少的反馈 我创建了一个进度片段 您可以在下面看到 当你看到最后一行时 sys stdout write r100 80 n I use 80覆盖最终剩余的
  • Mysql 时间匹配连接

    我有两个表cpuinfo和jobinfo 我想使用这两种数据创建报告 tabes CREATE TABLE cpuinfo id int 11 NOT NULL AUTO INCREMENT usagetime datetime DEFAU
  • Linux 上的静态 Qt5 构建:部署时如何处理字体?

    我使用这些配置选项创建了 Qt 5 2 0 库的静态版本 Ubuntu 12 04 开源 确认许可 force pkg config 发布 静止的 前缀 home juzzlin qt5 无icu opengl桌面 无油嘴滑舌 辅助功能 n
  • Galera 集群问题

    我想在我们的生产环境中使用Galera集群 但我有一些顾虑 每个表必须至少定义一个显式主键 每个表必须运行在InnoDB或XtraDB存储引擎下 分批处理您的大额交易 例如 不要让一个事务插入 100 000 行 而是将其分成更小的块 例如
  • linux-x64 二进制文件无法在 linuxmusl-x64 平台上使用错误

    我正在安装Sharp用于使用 package json 的 Nodejs 项目的 docker 映像上的映像压缩包 当我创建容器时 我收到有关 Sharp 包的以下错误 app node modules sharp lib libvips
  • 在 C# 中,当有人插入、删除或修改记录时,如何从 MySQL 获取事件?

    我正在 WPF Net 中开发一个程序 我需要知道何时有人对数据库的任何表进行更改 这个想法是在数据库发生更改时从数据库接收一个事件 我读了很多文章 但找不到解决我的问题的方法 亲切的问候 最好的解决方案是使用消息队列 在您的应用程序向数据
  • 如何在mysql中选择具有相同值集的列?

    我的桌子是 patients pid name city disease did dname has disease did pid 我想列出具有相同疾病组的患者 pid 和 did 分别是患者和疾病表中的主键 并且是 has diseas
  • 如果没有找到值,如何让 MySQL 中的 SUM 函数返回“0”?

    假设我在 MySQL 中有一个简单的函数 SELECT SUM Column 1 FROM Table WHERE Column 2 Test 如果没有条目Column 2 包含文本 Test 然后该函数返回NULL 而我希望它返回 0 我
  • Windows 8.1 升级后 Apache 无法工作 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 今天从 Windows 8 升级到 Windows 8 1 后 Apache 不再工作 我上次从 Windows 7 升级到 Window
  • 如何在 MySQL 中求和时间?

    正如您在图片中看到的 我有一份停机报告 显示了所选工厂在选定日期的停机时间 现在我想添加所有的值 Time Duration 列并将其显示在附近的单独显示中 TOTAL TIME DURATION 例如 在图像中 所选日期为 2015 年
  • 无需超级用户即可在 Linux 中打开 RAW 套接字

    我必须编写一个在 Linux 上运行的 ping 函数 语言是 C 所以 C 也可以 在网上搜索并查看源代码ping命令 事实证明我应该创建一个原始套接字 icmp sock socket AF INET SOCK RAW IPPROTO
  • db:schema:load 与 db:migrate 使用 capistrano

    我有一个 Rails 应用程序 我正在将其移动到另一台服务器 我认为我应该使用 db schema load 来创建 mysql 数据库 因为这是推荐的 我的问题是我正在使用 capistrano 进行部署 并且它似乎默认为 rake db

随机推荐