• Linux下Mysql安装与常见问题解决方案


    1.Mysql安装

    环境:

    image

    Mysql版本:

    image

    开始安装:

    首先检查环境有没有老版本mysql,有的话先卸载干净,具体百度。

    接着先获取mysql的安装包:wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

    如果FTP查看就是这个

    image

    然后安装一下:yum localinstall -y mysql57-community-release-el7-11.noarch.rpm

    最后装一下服务:yum install -y mysql-community-server

    装好后,先开启服务:systemctl start mysqld.service

    1.1问题:如果新装好的mysql开启服务后遇到下面情况

    DBBESF7K$2YBMO[L9@T(32B

    查看mysql相关进程:
    image

    接着kill掉。再开启一下,出现下面情况就代表没问题了:

    }_GJWL({(]99M617P7RD6QD

    注意active(running)那行是绿色的。

    如果查看mysql的status时出现这种情况:

    ~]I{P{B9LBKCJO0}[TR{){I

    说明失败了,出现了问题。

    你先重启一下mysql:systemctl restart  mysqld.service

    接着如果会出现这种情况:

    image

    则可能是配置文件有问题。下面会讲到配置文件如何更改。(新装的mysql配置文件一般没问题,出现问题可能是已经有mysql进程导致。)
    2.进入Mysql

    装好后mysql会给你一个默认随机密码,这时候你需要先更改root密码和权限,方便以后连接mysql做数据操作。

    这里介绍两种修改密码方法:

    第一种:在配置文件添加skip-grant-tables。这是直接绕过登录,弊端是这种方法建议做临时,长期不适用,考虑到后期要将数据库对外。

    我们先输入:vim /etc/my.cnf  编辑装完mysql的配置文件。然后更改,(按i):

    image

    打开差不多是这样,我们将skip-grant-tables 添加到光标处,也就是顶部[mysqld]的底下,注意是mysqld,上面还有一个msql。

    完了按esc,输入 冒号+wq保存退出::wq

    接着我们重启一下mysql,再直接输入mysql就可以直接登录了。

    image

    我们下一步要更改mysql的密码,首先看一下数据库:show databases;

    image

    可以看到有一个mysql数据库,这是装完就存在的。我们使用这个数据库:use mysql;

    image

    这个数据库里面有一个user表,表里存放了登录相关的字段,我们只要update一下就可以了:

    mysql> update user set password=password('123') where user='root' and host='localhost';
    mysql> flush privileges;

    一般是没有什么问题,如果出现

    image

    这种情况,表示你user表里面没有password字段。(我当时就是这种情况)不要急,我们看一下user里面有哪些字段:desc use;

    image

    你一个个字段看完,发现确实没有password字段。

    但是你往下看,找到一个这个字段

    image

    这个字段里存放的是mysql默认的加密过的密码

    我们select一下看看:

    image

    知道字段就好办了,直接update成你自己的密码即可。(改完密码记得把配置文件里的skip那段删掉,再重启mysql)

    第二种是查看日志,他会告诉你默认的mysql密码,每台机器是不一样的,我们看一下:grep 'temporary password' /var/log/mysqld.log

    image

    知道默认密码了,我们就能登录再修改成自己的密码了(密码在最后的root@localhost:这里。你也可以用他给的随机密码. :D)。

    3.连接Mysql

    第一次用Navicat for Mysql可能出现 1130 host is not allowed to connect to…. 这个错误

    原因是你的帐号不允许从远程登录,只能在localhost。你只要更改一下表的数据即可

    登录mysql后,使用mysql数据库,接着输入

    mysql>update user set host = '%' where user = 'root';

    mysql> flush privileges;

    不放心再看一下

    mysql>select host, user from user;

    你看到root用户的host字段变成%就可以了。

    4.在mysql中插入中文时出现??或者乱码;在myeclipse中连接mysql后插入中文数据出现乱码的情况

    出现这种情况首先确保你的开发环境全部是UTF-8(跟mysql要一致)包括IDE和Navicat for mysql的编码。

    接着更改mysql的配置文件:

    第一步先看一下数据库编码,输入:show variables like '%char%';

    image

    我这里的修改过了,默认的value有其他的编码,先更他们的编码:

    SET character_set_client = utf8;

    SET character_set_connection = utf8; 

    SET character_set_database = utf8;

    SET character_set_results = utf8;

    SET character_set_server = utf8;  .

    ….

    改好后,有可能出现重启mysql编码会还原的情况,这时候你需要更改my.cnf配置文件(一般装完默认路径是/etc/my.cnf)。

    先exit退出mysql后输入:vim /etc/my.cnf  按i 进入编辑模式

    image

    将上述两行代码添加进去。这里要注意一下,光标处的那一行最好放在[mysql] 底下,最下面的放在[mysqld]下面。我刚开始放错位置导致了重启mysql时出现的一个问题:

    image

    有可能会出现这个 Job for mysqld.service failed的情况。

    改好后重启一下mysql,基本就好了。

    5.结语

    上述的这些问题自己在折腾的时候都出现过,有的很头疼,弄一下午的情况也有。后来经过搜索,高人的指点,终于把所有问题都解决了。写了这篇来汇总我安装时出现的问题,希望对刚接触linux部署mysql的新人有所帮助吧。

  • 相关阅读:
    js以字符串方式创建DOM(原生js,jquery,extjs)
    gallery3
    检测标准类型和内置对象类型
    js数据类型和类型检测
    gallery2
    gallery
    如何使用Git上传项目代码到github
    sublime EMMET
    模糊搜索
    导出表格
  • 原文地址:https://www.cnblogs.com/JJDJJ/p/7205478.html
Copyright © 2020-2023  润新知