从最新版本的 linux 系统开始,默认的是 Mariadb 而不是 mysql!这里依旧以 mysql 为例进行展示
1、先检查系统是否装有 mysql
<code class="hljs 1c has-numbering hljs">rpm -qa <span class="hljs-string"><span class="hljs-string">| grep mysql</span></span></code>
这里返回空值,说明没有安装
这里执行安装命令是无效的,因为 centos-7 默认是 Mariadb,所以执行以下命令只是更新 Mariadb 数据库
<code class="hljs cmake has-numbering hljs">yum <span class="hljs-keyword"><span class="hljs-keyword">install</span></span> mysql</code>
删除可用
<code class="hljs cmake has-numbering hljs">yum <span class="hljs-keyword"><span class="hljs-keyword">remove</span></span> mysql</code>
2、下载 mysql 的 repo 源
<code class="hljs ruleslanguage has-numbering hljs"><span class="hljs-array"><span class="hljs-array"># wget http</span></span>:<span class="hljs-comment"><span class="hljs-comment">//repo.mysql.com/mysql-community-release-el7-5.noarch.rpm</span></span></code>
安装 mysql-community-release-el7-5.noarch.rpm 包
<code class="hljs vala has-numbering hljs"><span class="hljs-preprocessor"><span class="hljs-preprocessor"># sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm</span></span></code>
安装这个包后,会获得两个 mysql 的 yum repo 源:/etc/yum.repos.d/mysql-community.repo,/etc/yum.repos.d/mysql-community-source.repo。
3、安装 mysql
<code class="hljs vala has-numbering hljs"><span class="hljs-preprocessor"><span class="hljs-preprocessor"># sudo yum install mysql-server</span></span></code>
根据步骤安装就可以了,不过安装完成后,没有密码,需要重置密码。
安装后再次查看 mysql
如果报错,内容含有
<code class="hljs lasso has-numbering hljs">Error: Package: mysql<span class="hljs-attribute"><span class="hljs-attribute">-community</span></span><span class="hljs-attribute"><span class="hljs-attribute">-libs</span></span><span class="hljs-subst"><span class="hljs-subst">-</span></span><span class="hljs-number"><span class="hljs-number">5.6</span></span><span class="hljs-number"><span class="hljs-number">.35</span></span><span class="hljs-subst"><span class="hljs-subst">-</span></span><span class="hljs-number"><span class="hljs-number">2.</span></span>el7<span class="hljs-built_in"><span class="hljs-built_in">.</span></span>x86_64 (mysql56<span class="hljs-attribute"><span class="hljs-attribute">-community</span></span>) Requires: libc<span class="hljs-built_in"><span class="hljs-built_in">.</span></span>so<span class="hljs-number"><span class="hljs-number">.6</span></span>(GLIBC_2<span class="hljs-number"><span class="hljs-number">.17</span></span>)(<span class="hljs-number"><span class="hljs-number">64</span></span>bit) Error: Package: mysql<span class="hljs-attribute"><span class="hljs-attribute">-community</span></span><span class="hljs-attribute"><span class="hljs-attribute">-server</span></span><span class="hljs-subst"><span class="hljs-subst">-</span></span><span class="hljs-number"><span class="hljs-number">5.6</span></span><span class="hljs-number"><span class="hljs-number">.35</span></span><span class="hljs-subst"><span class="hljs-subst">-</span></span><span class="hljs-number"><span class="hljs-number">2.</span></span>el7<span class="hljs-built_in"><span class="hljs-built_in">.</span></span>x86_64 (mysql56<span class="hljs-attribute"><span class="hljs-attribute">-community</span></span>) Requires: libc<span class="hljs-built_in"><span class="hljs-built_in">.</span></span>so<span class="hljs-number"><span class="hljs-number">.6</span></span>(GLIBC_2<span class="hljs-number"><span class="hljs-number">.17</span></span>)(<span class="hljs-number"><span class="hljs-number">64</span></span>bit) Error: Package: mysql<span class="hljs-attribute"><span class="hljs-attribute">-community</span></span><span class="hljs-attribute"><span class="hljs-attribute">-server</span></span><span class="hljs-subst"><span class="hljs-subst">-</span></span><span class="hljs-number"><span class="hljs-number">5.6</span></span><span class="hljs-number"><span class="hljs-number">.35</span></span><span class="hljs-subst"><span class="hljs-subst">-</span></span><span class="hljs-number"><span class="hljs-number">2.</span></span>el7<span class="hljs-built_in"><span class="hljs-built_in">.</span></span>x86_64 (mysql56<span class="hljs-attribute"><span class="hljs-attribute">-community</span></span>) Requires: systemd Error: Package: mysql<span class="hljs-attribute"><span class="hljs-attribute">-community</span></span><span class="hljs-attribute"><span class="hljs-attribute">-server</span></span><span class="hljs-subst"><span class="hljs-subst">-</span></span><span class="hljs-number"><span class="hljs-number">5.6</span></span><span class="hljs-number"><span class="hljs-number">.35</span></span><span class="hljs-subst"><span class="hljs-subst">-</span></span><span class="hljs-number"><span class="hljs-number">2.</span></span>el7<span class="hljs-built_in"><span class="hljs-built_in">.</span></span>x86_64 (mysql56<span class="hljs-attribute"><span class="hljs-attribute">-community</span></span>) Requires: libstdc<span class="hljs-subst"><span class="hljs-subst">++</span></span><span class="hljs-built_in"><span class="hljs-built_in">.</span></span>so<span class="hljs-number"><span class="hljs-number">.6</span></span>(GLIBCXX_3<span class="hljs-number"><span class="hljs-number">.4</span></span><span class="hljs-number"><span class="hljs-number">.15</span></span>)(<span class="hljs-number"><span class="hljs-number">64</span></span>bit) Error: Package: mysql<span class="hljs-attribute"><span class="hljs-attribute">-community</span></span><span class="hljs-attribute"><span class="hljs-attribute">-client</span></span><span class="hljs-subst"><span class="hljs-subst">-</span></span><span class="hljs-number"><span class="hljs-number">5.6</span></span><span class="hljs-number"><span class="hljs-number">.35</span></span><span class="hljs-subst"><span class="hljs-subst">-</span></span><span class="hljs-number"><span class="hljs-number">2.</span></span>el7<span class="hljs-built_in"><span class="hljs-built_in">.</span></span>x86_64 (mysql56<span class="hljs-attribute"><span class="hljs-attribute">-community</span></span>) Requires: libc<span class="hljs-built_in"><span class="hljs-built_in">.</span></span>so<span class="hljs-number"><span class="hljs-number">.6</span></span>(GLIBC_2<span class="hljs-number"><span class="hljs-number">.17</span></span>)(<span class="hljs-number"><span class="hljs-number">64</span></span>bit) You could try using <span class="hljs-subst"><span class="hljs-subst">--</span></span><span class="hljs-keyword"><span class="hljs-keyword">skip</span></span><span class="hljs-attribute"><span class="hljs-attribute">-broken</span></span> <span class="hljs-keyword"><span class="hljs-keyword">to</span></span> work around the problem You could try running: rpm <span class="hljs-attribute"><span class="hljs-attribute">-Va</span></span> <span class="hljs-subst"><span class="hljs-subst">--</span></span>nofiles <span class="hljs-subst"><span class="hljs-subst">--</span></span>nodigest</code>
解决:
<code class="hljs vala has-numbering hljs"><span class="hljs-preprocessor"><span class="hljs-preprocessor">#yum install glibc.i686 </span></span><span class="hljs-preprocessor"><span class="hljs-preprocessor"># yum list libstdc++*</span></span></code>
4、重置密码
重置密码前,首先要登录
<code class="hljs vala has-numbering hljs"><span class="hljs-preprocessor"><span class="hljs-preprocessor"># mysql -u root</span></span></code>
登录时有可能报这样的错:ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2),原因是/var/lib/mysql 的访问权限问题。下面的命令把/var/lib/mysql 的拥有者改为当前用户:
<code class="hljs vala has-numbering hljs"><span class="hljs-preprocessor"><span class="hljs-preprocessor"># sudo chown -R openscanner:openscanner /var/lib/mysql</span></span></code>
如果报chown: 无效的用户: "openscanner:openscanner"
错误,更换命令,并用 ll 查看目录权限列表
<code class="hljs cs has-numbering hljs">chown root /<span class="hljs-keyword"><span class="hljs-keyword">var</span></span>/lib/mysql/ ll</code>
附:
① 更改文件拥有者 (chown )
[root@linux ~]# chown 账号名称 文件或目录
② 改变文件的用户组用命令 chgrp
[root@linux ~]# chgrp 组名 文件或目录
③ 对于目录权限修改之后,默认只是修改当前级别的权限。如果子目录也要递归需要加 R 参数
Chown -R : 进行递归,连同子目录下的所有文件、目录
然后,重启服务:
<code class="hljs has-numbering hljs">service mysqld restart</code>
接下来登录重置密码:
<code class="hljs lasso has-numbering hljs"> mysql <span class="hljs-attribute"><span class="hljs-attribute">-u</span></span> root <span class="hljs-attribute"><span class="hljs-attribute">-p</span></span></code>
<code class="hljs php has-numbering hljs">mysql > <span class="hljs-keyword"><span class="hljs-keyword">use</span></span> <span class="hljs-title"><span class="hljs-title">mysql</span></span>; mysql > update user set password=password(<span class="hljs-string"><span class="hljs-string">'123456'</span></span>) where user=<span class="hljs-string"><span class="hljs-string">'root'</span></span>; mysql > <span class="hljs-keyword"><span class="hljs-keyword">exit</span></span>;</code>
重启 mysql 服务后才生效 # service mysqld restart
必要时加入以下命令行,为 root 添加远程连接的能力。链接密码为 “root”(不包括双引号)
<code class="hljs lasso has-numbering hljs">mysql<span class="hljs-subst"><span class="hljs-subst">></span></span> GRANT <span class="hljs-literal"><span class="hljs-literal">ALL</span></span> PRIVILEGES <span class="hljs-keyword"><span class="hljs-keyword">ON</span></span> <span class="hljs-subst"><span class="hljs-subst">*</span></span><span class="hljs-built_in"><span class="hljs-built_in">.</span></span><span class="hljs-subst"><span class="hljs-subst">*</span></span> <span class="hljs-keyword"><span class="hljs-keyword">TO</span></span> root@<span class="hljs-string"><span class="hljs-string">"%"</span></span> IDENTIFIED <span class="hljs-keyword"><span class="hljs-keyword">BY</span></span> <span class="hljs-string"><span class="hljs-string">"root"</span></span>; </code>
6、查询数据库编码格式,确保是 UTF-8
<code class="hljs sql has-numbering hljs"><span class="hljs-operator"><span class="hljs-keyword"><span class="hljs-operator"><span class="hljs-keyword">show</span></span></span><span class="hljs-operator"> variables </span><span class="hljs-keyword"><span class="hljs-operator"><span class="hljs-keyword">like</span></span></span> <span class="hljs-string"><span class="hljs-operator"><span class="hljs-string">"%char%"</span></span></span><span class="hljs-operator">;</span></span></code>
需要修改编码格式为 UTF-8,导入数据库 sql 的时候,请确保 sql 文件为 utf8 编码
进入 mysql 命令行后 输入
<code class="hljs sql has-numbering hljs"><span class="hljs-operator"><span class="hljs-keyword"><span class="hljs-operator"><span class="hljs-keyword">set</span></span></span> <span class="hljs-keyword"><span class="hljs-operator"><span class="hljs-keyword">names</span></span></span><span class="hljs-operator"> utf8;</span></span></code>
(测试数据库数据)
再进入数据库 use test;
在导入 sql 脚本 source test.sql;
7、开放 3306 端口号
firewalld 防火墙(centos-7)运行命令,并重启:
<code class="hljs brainfuck has-numbering hljs"><span class="hljs-comment"><span class="hljs-comment">firewall</span></span><span class="hljs-literal"><span class="hljs-literal">-</span></span><span class="hljs-comment"><span class="hljs-comment">cmd</span></span> <span class="hljs-literal"><span class="hljs-literal">-</span></span><span class="hljs-literal"><span class="hljs-literal">-</span></span><span class="hljs-comment"><span class="hljs-comment">zone=public</span></span> <span class="hljs-literal"><span class="hljs-literal">-</span></span><span class="hljs-literal"><span class="hljs-literal">-</span></span><span class="hljs-comment"><span class="hljs-comment">add</span></span><span class="hljs-literal"><span class="hljs-literal">-</span></span><span class="hljs-comment"><span class="hljs-comment">port=3306/tcp</span></span> <span class="hljs-literal"><span class="hljs-literal">-</span></span><span class="hljs-literal"><span class="hljs-literal">-</span></span><span class="hljs-comment"><span class="hljs-comment">permanent</span></span> <span class="hljs-comment"><span class="hljs-comment">firewall</span></span><span class="hljs-literal"><span class="hljs-literal">-</span></span><span class="hljs-comment"><span class="hljs-comment">cmd</span></span> <span class="hljs-literal"><span class="hljs-literal">-</span></span><span class="hljs-literal"><span class="hljs-literal">-</span></span><span class="hljs-comment"><span class="hljs-comment">reload</span></span></code>
iptables 防火墙(centos6.5 及其以前)运行命令
<code class="hljs has-numbering hljs">vim /etc/sysconfig/iptables</code>
在文件内添加下面命令行,然后重启
<code class="hljs lasso has-numbering hljs"><span class="hljs-attribute"><span class="hljs-attribute">-A</span></span> INPUT <span class="hljs-attribute"><span class="hljs-attribute">-p</span></span> tcp <span class="hljs-attribute"><span class="hljs-attribute">-m</span></span> state <span class="hljs-subst"><span class="hljs-subst">--</span></span>state <span class="hljs-literal"><span class="hljs-literal">NEW</span></span> <span class="hljs-attribute"><span class="hljs-attribute">-m</span></span> tcp <span class="hljs-subst"><span class="hljs-subst">--</span></span>dport <span class="hljs-number"><span class="hljs-number">3306</span></span> <span class="hljs-attribute"><span class="hljs-attribute">-j</span></span> ACCEPT</code>
<code class="hljs vala has-numbering hljs"><span class="hljs-preprocessor"><span class="hljs-preprocessor"># service iptables restart</span></span></code>
外部链接访问效果(一般建立 sql 数据库和数据表,建议通过远程链接控制,直观易操作)
附:
出现“Warning: Using a password on the command line interface can be insecure.”的错误
第一种方法、修改数据库配置文件
1、我们需要修改数据库配置文件,这个要看我们数据库的配置的,有些是在/etc/my.cnf,有些是/etc/my.conf
我们需要在[client]部分添加脚本:
<code class="hljs ini has-numbering hljs"><span class="hljs-setting"><span class="hljs-setting">socket=</span><span class="hljs-value"><span class="hljs-setting"><span class="hljs-value">/var/lib/mysql/mysql.sock ( mysql.sock 文件位置 )</span></span></span></span> <span class="hljs-setting"><span class="hljs-setting">host=</span><span class="hljs-value"><span class="hljs-setting"><span class="hljs-value">localhost</span></span></span></span> <span class="hljs-setting"><span class="hljs-setting">user=</span><span class="hljs-value"><span class="hljs-setting"><span class="hljs-value">数据库用户</span></span></span></span> <span class="hljs-setting"><span class="hljs-setting">password=</span><span class="hljs-value"><span class="hljs-setting"><span class="hljs-value">'数据库密码'</span></span></span></span></code>
这里参数要修改成我们自己的。
2、采用命令导出和导入数据库
其实在这个时候,我们如果采用”详解使用 mysqldump 命令备份还原 MySQL 数据用法整理http://www.laozuo.org/5047.html“介绍的方法也是可以使用的,虽然依旧有错误提示,但是数据库还是可以导出的。您肯定和老左一样是追求细节的人,一点点问题都不能有,但我们可以用下面的命令导出和导入,就没有错误提示。
导出数据库
<code class="hljs avrasm has-numbering hljs">mysqldump --defaults-extra-file=/etc/my<span class="hljs-preprocessor"><span class="hljs-preprocessor">.cnf</span></span> database > database<span class="hljs-preprocessor"><span class="hljs-preprocessor">.sql</span></span></code>
导入数据库
<code class="hljs avrasm has-numbering hljs">mysql --defaults-extra-file=/etc/my<span class="hljs-preprocessor"><span class="hljs-preprocessor">.cnf</span></span> database < database<span class="hljs-preprocessor"><span class="hljs-preprocessor">.sql</span></span></code>
这里我们可以看到上面的命令和以前常用的快速导入和导入命令有所不同了,需要加载我们配置的 MYSQL 配置文件,这个“/etc/my.cnf”要根据我们实际的路径修改。用这样的命令导出备份和导入是没有错误提示的。
登陆数据库
<code class="hljs vala has-numbering hljs"><span class="hljs-preprocessor"><span class="hljs-preprocessor"># mysql -u root -p</span></span></code>
第二种方法、利用 mysql_config_editor
1、设置加密模式
<code class="hljs brainfuck has-numbering hljs"><span class="hljs-comment"><span class="hljs-comment">mysql_config_editor</span></span> <span class="hljs-comment"><span class="hljs-comment">set</span></span> <span class="hljs-literal"><span class="hljs-literal">-</span></span><span class="hljs-literal"><span class="hljs-literal">-</span></span><span class="hljs-comment"><span class="hljs-comment">login</span></span><span class="hljs-literal"><span class="hljs-literal">-</span></span><span class="hljs-comment"><span class="hljs-comment">path=local</span></span> <span class="hljs-literal"><span class="hljs-literal">-</span></span><span class="hljs-literal"><span class="hljs-literal">-</span></span><span class="hljs-comment"><span class="hljs-comment">host=localhost</span></span> <span class="hljs-literal"><span class="hljs-literal">-</span></span><span class="hljs-literal"><span class="hljs-literal">-</span></span><span class="hljs-comment"><span class="hljs-comment">user=db_user</span></span> <span class="hljs-literal"><span class="hljs-literal">-</span></span><span class="hljs-literal"><span class="hljs-literal">-</span></span><span class="hljs-comment"><span class="hljs-comment">password</span></span></code>
“db_user”是需要修改成我们自己数据库用户名的,回车之后会提示我们输入数据库密码,我们照样输入。
2、执行备份
<code class="hljs avrasm has-numbering hljs">mysqldump -u db_user -pInsecurePassword my_database | gzip > backup<span class="hljs-preprocessor"><span class="hljs-preprocessor">.tar</span></span><span class="hljs-preprocessor"><span class="hljs-preprocessor">.gz</span></span></code>
-u db_user
-p.InsecurePassword ( 中间的“.”记得去掉 )
根据我们数据信息修改用户和用户名和数据库密码,执行备份,这里老左测试还是有错误提示,但数据库是可以备份的。
修改 MySQL 的 root 用户的密码:
mysql -u root mysql
mysql>use mysql;
mysql>desc user;
mysql> GRANT ALL PRIVILEGES ON . TO root@”%” IDENTIFIED BY “root”; //为 root 添加远程连接的能力。
mysql>update user set Password = password(‘xxxxxx’) where User=’root’;
mysql>select Host,User,Password from user where User=’root’;
mysql>flush privileges;
mysql>exit;
重新登录:mysql -u root -p
delete from mysql.user where user=”; ← 删除匿名用户
select user,host from mysql.user; ← 查看用户信息
相关文章
- ThinkPad x13 Gen1傲腾H10重装系统的麻烦(0)
- Win10系统电脑进入安全模式的四种方法,让你轻松应对各种问题(0)
- 【Python】修改Windows中 pip 的缓存位置与删除 pip 缓存(1)
- 记录问题解决的连接(0)
- ‘%s=%s’ % (k, v) for k, v in params.items(), ^ SyntaxError: Generator expression must be parent(0)