CentOS 7 下安装 MySQL 5.7

 centos, mysql  CentOS 7 下安装 MySQL 5.7已关闭评论
8月 212019
 

原文链接:https://blog.csdn.net/u011886447/article/details/79796802

从 CentOS 7 系统开始,MariaDB 成为 yum 源中默认的数据库安装包。在 CentOS 7 及以上的系统中使用 yum 安装 MySQL 包将无法使用 MySQL。您可以选择使用完全兼容的 MariaDB,或依照本文介绍配置来继续使用 MySQL。本文以在 CentOS 7 下安装 MySQL 5.7.21 为例。

 

  1. 检查 MariaDB 是否安装

yum list installed | grep mariadb

 

 

 

  1. 卸载全部MariaDB 相关

yum -y remove mariadb*

 

  1. 下载 MySQL 的 YUM 源

进入到要下载到的路径:cd /usr/local/src

 

下载:wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm

 

  1. 安装MySQL 的 YUM 源

rpm -ivh mysql57-community-release-el7-11.noarch.rpm

 

  1. 检查MySQL 的 YUM 源是否安装成功

yum repolist enabled | grep “mysql.*-community.*”

 

 

 

如图所示则安装成功。

 

  1. 查看 MySQL 版本

yum repolist all | grep mysql

 

 

 

  1. 安装 MySQL

yum install mysql-community-server

 

一直输 y 就可以了。

 

  1. 启动 MySQL 服务

systemctl start mysqld

 

  1. 测试连接 MySQL 服务

mysql -u root 或者 mysql

 

——————————————————————————–

 

提示:

 

刚安装的 MySQL 是没有密码的,这时如果出现:

 

ERROR 1045 (28000): Access denied for user ‘root’@’localhost’ (using password: NO),解决如下:

 

① 停止 MySQL 服务:systemctl stop mysqld

 

② 以不检查权限的方式启动 MySQL: mysqld –user=root –skip-grant-tables &

 

③ 再次输入 mysql -u root 或者 mysql,这次就可以进来了。

 

④ 更新密码:

 

MySQL 5.7 以下版本:UPDATE mysql.user SET Password=PASSWORD(‘123456′) where USER=’root’;

 

MySQL 5.7 版本:UPDATE mysql.user SET authentication_string=PASSWORD(‘123456′) where USER=’root’;

 

⑤ 刷新:flush privileges;

 

⑥ 退出:exit;

 

设置完之后,输入 mysql -u root -p,这时输入刚设置的密码,就可以登进数据库了。

 

——————————————————————————–

 

  1. 防火墙设置

远程访问 MySQL,需要开放 3306 端口:

 

firewall-cmd –permanent –zone=public –add-port=3306/tcp

 

firewall-cmd –permanent –zone=public –add-port=3306/udp

 

firewall-cmd –reload

 

如果是 CentOS 7,需要将 MySQL 服务加入防火墙,然后重启防火墙:

 

firewall-cmd –zone=public –permanent –add-service=mysql

 

systemctl restart firewalld

 

——————————————————————————–

 

提示:

 

在输入 firewall-cmd –permanent –zone=public –add-port=3306/tcp 时可能会报 ‘FirewallD is not running’,是说防火墙本身就没有打开,解决方法:

 

① 查看防火墙状态:systemctl status firewalld,会发现状态是 dead,即防火墙未开启。

 

② 打开防火墙:systemctl start firewalld

 

③ 再次查看防火墙状态:systemctl status firewalld,这时会发现状态变为 running,即防火墙开启成功。

 

 

 

 

 

 

这时再输入开放 3306 端口的命令就没有问题了。

 

——————————————————————————–

 

  1. 设置允许远程访问

默认情况下 MySQL 是不允许远程连接的,所以在 Java 项目或者 MySQLWorkbench 等数据库连接工具连接服务器上的 MySQL 服务的时候会报 “Host ‘x.x.x.x’ is not allowed to connect to this MySQL server”。可以通过下面的设置解决。详细可以参考之前写的一篇文章 XXX is not allowed to connect to this MySQL server。

 

① grant all privileges on *.* to root@”%” identified by ‘0’;

 

② flush privileges;

 

——————————————————————————–

 

提示:

 

在执行第一条命令的时候,可能会报:

 

‘ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.’ 需要让我们重置密码。原因是因为我刚刚的命令中设置的数据库密码是0,这个密码过于简单,不符合 MySQL 的安全要求。只要重新设置一个复杂点的密码就可以了:

 

mysql> SET PASSWORD = PASSWORD(‘xxx’);   //xxx 是重置的新的复杂的密码

 

——————————————————————————–

 

思考:

 

之前设置简单密码是没有问题的,可能原因:

 

① 可能目前环境是 CentOS 7 + MySQL 5.7.21,安全性有所提升。

 

② 也有可能是之前的数据库设置过

 

mysql> set global validate_password_policy=0;

 

mysql> set global validate_password_length=1;

 

允许设置简单密码。

 

  1. 相关命令

MySQL 相关:

 

systemctl start mysqld    #启动mysql

 

systemctl stop mysqld    #停止mysqld

 

systemctl restart mysqld    #重启mysqld

 

systemctl enable mysqld    #设置开机启动

 

systemctl status mysqld    #查看 MySQL Server 状态

 

防火墙相关:

 

systemctl status firewalld    #查看防火墙状态

 

systemctl start firewalld    #打开防火墙

 

systemctl stop firewalld    #关闭防火墙

 

systemctl restart firewalld    #重启防火墙

 

 

centos 7.6 下python2.7 安装 MySQL-python问题解决

 python  centos 7.6 下python2.7 安装 MySQL-python问题解决已关闭评论
5月 162019
 

centos7.6 下python2.7版本使用pip install MySQL-python可能出现下面错误:

可能问题一:  ERROR: Complete output from command python setup.py egg_info:
ERROR: sh: mysql_config: 未找到命令

解决办法: yum install mysql-devel

 

再次安装,没问题最好, 如果出现下面问题:

 可能问题二:_mysql.c:29:20: 致命错误:Python.h:没有那个文件或目录
#include “Python.h”

解决办法: yum install python-devel

 

再次安装 : pip install MySQL-python

问题解决!

 

Ubuntu 16.04 升级内核 安装 BBR

 bbr, ubuntu  Ubuntu 16.04 升级内核 安装 BBR已关闭评论
3月 272019
 

 BBR 只能配合 Linux Kernel 4.10 以上内核才能使用, 所以需要升级内核


查看内核版本,如达到要求略

# uname -r

4.4.0-1075-aws  //默认4.4.0,因此需要升级

//切换到root用户

$ sudo -s  

# wget –no-check-certificate https://github.com/teddysun/across/raw/master/bbr.sh

# chmod +x bbr.sh 

# ./bbr.sh

———- System Information ———-

 OS      : Ubuntu 16.04.5 LTS

 Arch    : x86_64 (64 Bit)

 Kernel  : 4.4.0-1075-aws

—————————————-

 Auto install latest kernel for TCP BBR

 URL: https://teddysun.com/489.html

—————————————-

Press any key to start…or Press Ctrl+C to cancel

按任意键后会显示

Info: Getting latest kernel version…

———— kernel setting ————

1) 4.14

……

…..

234) 4.20.16

235) 4.20.17

236) 5.0

237) 5.0.1

238) 5.0.2

239) 5.0.3

240) 5.0.4

which kernel you’d select (default 5.0.4):  // 按回车键选择最新版本 

your selection: 5.0.4

–2019-03-27 02:55:58–  https://kernel.ubuntu.com/~kernel-ppa/mainline/v5.0.4/linux-modules-5.0.4-050004-generic_5.0.4-050004.201903231634_amd64.deb

Resolving kernel.ubuntu.com (kernel.ubuntu.com)… 91.189.94.216

Connecting to kernel.ubuntu.com (kernel.ubuntu.com)|91.189.94.216|:443… connected.

HTTP request sent, awaiting response… 200 OK

Length: 46593520 (44M) [application/x-debian-package]

Saving to: ‘linux-modules-5.0.4-amd64.deb’

     0K ………. ………. ………. ………. ……….  0%  160K 4m44s

    50K ………. ………. ………. ………. ……….  0%  321K 3m33s

   100K ………. ………. ………. ………. ……….  0% 24.3M 2m22s

   150K ………. ……..

……..

done

Info: The system needs to reboot.

Do you want to restart system? [y/n]y  //按“y“重启

./bbr.sh: line 271:  8748 Terminated              reboot



#######重启后##########

$ uname -r

5.0.4-050004-generic

$ sudo -s


#分别输入下面命令检查

# sysctl net.ipv4.tcp_available_congestion_control

net.ipv4.tcp_available_congestion_control = reno cubic bbr


# sysctl net.ipv4.tcp_congestion_control

net.ipv4.tcp_congestion_control = bbr


# sysctl net.core.default_qdisc

net.core.default_qdisc = fq


# lsmod | grep bbr

tcp_bbr                20480  6


看到bbr即完成


centos 7 升级内核 安装 BBR

 bbr  centos 7 升级内核 安装 BBR已关闭评论
3月 272019
 

BBR介绍

Google BBR (Bottleneck Bandwidth and RTT) 是一种新的TCP拥塞控制算法,它可以高效增加吞吐和降低网络延迟,并且Linux Kernel4.9+已经集成该算法。开启BBR也非常简单,因为它只需要在发送端开启,网络其他节点和接收端不需要任何改变。

升级内核

1. 打开Terminal

输入

# uname -r 

查看内核版本,如果输出类似

3.10.0-514.21.2.el7.x86_64

则表示小于4.9,需要升级内核,
而如果内核大于等于4.9则跳过至开启Google BBR

2. 升级内核

  • 安装 ELRepo 仓库

    # rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org # rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-2.el7.elrepo.noarch.rpm 
  • 安装最新版kernel

    # yum --enablerepo=elrepo-kernel install kernel-ml -y 
  • 确认是否安装成功

    # rpm -qa | grep kernel 

    如果输出类似如下,包含kernel-ml-4.13.10-1.el7.elrepo.x86_64,则表示安装成功

    kernel-3.10.0-693.el7.x86_64
    kernel-tools-3.10.0-693.el7.x86_64
    kernel-ml-4.13.10-1.el7.elrepo.x86_64
    kernel-tools-libs-3.10.0-693.el7.x86_64

  • 设置开机默认启动项

    # egrep ^menuentry /etc/grub2.cfg | cut -f 2 -d \' 

    输出结果类似如下

    CentOS Linux 7 Rescue f212d2d7754a4a6bb2b98950c20cc0b5 (4.13.10-1.el7.elrepo.x86_64)
    CentOS Linux (4.13.10-1.el7.elrepo.x86_64) 7 (Core)
    CentOS Linux (3.10.0-693.el7.x86_64) 7 (Core)
    CentOS Linux (0-rescue-d1f142097d497f24c021d7de9b81cab4) 7 (Core)

    该列表从0开始索引,所以4.13内核索引为1

  • 设置启动项

    # grub2-set-default 1 
  • 重启

    # reboot 

    查看内核版本

    # uname -r 

    如果输出类似

    4.13.10-1.el7.elrepo.x86_64

    则表示升级完成

开启Google BBR

  • 修改sysctl配置

    # echo 'net.core.default_qdisc=fq' | tee -a /etc/sysctl.conf # echo 'net.ipv4.tcp_congestion_control=bbr' |  tee -a /etc/sysctl.conf # sysctl -p 
  • 检查是否加载BBR

    # lsmod | grep bbr 

    如果输出结果包含tcp_bbr,则表示开启成功

    tcp_bbr 20480 0

转自:https://www.jianshu.com/p/52815c34215e

mac下安装MySQL_python时出现_mysql.c:44:10: fatal error: ‘my_config.h’ file not found

 python  mac下安装MySQL_python时出现_mysql.c:44:10: fatal error: ‘my_config.h’ file not found已关闭评论
12月 242018
 

mac下使用brew install mysql,安装pip install MySQL-python出现下面错误提示: 

    _mysql.c:44:10: fatal error: ‘my_config.h’ file not found
    #include “my_config.h”
             ^~~~~~~~~~~~~
    1 error generated.
    error: command ‘cc’ failed with exit status 1

网上很多方法都无效,使用下面都步骤可解决

brew remove mysql
brew install mysql@5.7
brew link --force mysql@5.7
pip install msyql-python (如权限不足,请使用sudo)

python3安装turtle提示错误:Command “python setup.py egg_info” failed with error code 1 错误解决

 python  python3安装turtle提示错误:Command “python setup.py egg_info” failed with error code 1 错误解决已关闭评论
12月 022018
 

 使用pip在python3.6.4安装turtle时出现下面错误:

Collecting turtle

  Using cached https://files.pythonhosted.org/packages/ff/f0/21a42e9e424d24bdd0e509d5ed3c7dfb8f47d962d9c044dba903b0b4a26f/turtle-0.0.2.tar.gz

    Complete output from command python setup.py egg_info:

    Traceback (most recent call last):

      File “<string>”, line 1, in <module>

      File “/tmp/pip-install-hpqxw6_s/turtle/setup.py”, line 40

        except ValueError, ve:

                         ^

    SyntaxError: invalid syntax

    —————————————-

Command “python setup.py egg_info” failed with error code 1 in /xxx/turtle/

其实仔细看是一个语法错误,可以根据上面的url(https://files.pythonhosted.org/packages/ff/f0/21a42e9e424d24bdd0e509d5ed3c7dfb8f47d962d9c044dba903b0b4a26f/turtle-0.0.2.tar.gz)自己先把包下载到本地,然后解压到本地再安装,提示的错误在解压的setup.py文件里面,

  1. 打开setup.py文件,第40行修改为 except (ValueError, ve):
    原来的是Python2的写法,没有括号,加了括号之后Python3就能用了。
  2. 用pip3安装: pip install -e turtle-0.0.2
    -e后面接上我们修改过setup.py文件的目录。
  3. 这样就搞定了。

ubuntu 16.04安装shadowsocks(ss) gui 客户端

 ubuntu  ubuntu 16.04安装shadowsocks(ss) gui 客户端已关闭评论
11月 282018
 

如何安装ss服务器请自行搜索,本文只讲解在ubuntu 16.04/14.04下ss gui客户端安装,请依次执行: 

1. 安装 shadowsocks-qt5

sudo add-apt-repository ppa:hzwhuang/ss-qt5
sudo apt-get update
sudo apt-get install shadowsocks-qt5 

2. 配置ss服务器连接

打开shadowsocks-qt5, 然后通过菜单 连接->添加->手动 , 添加服务器ip,端口,密码,加密方式,本地地址,本地端口(如:1080)等, 保存后连接


3. 配置本机网络连接

在系统设置中,选择网络 –> 网络代理 –> 方法手动 –> Socks主机 127.0.0.1   1080。应用到整个系统即可

ubuntu 16.04 下安装 pyaudio

 python, ubuntu  ubuntu 16.04 下安装 pyaudio已关闭评论
11月 202018
 
1.先使用命令安装:
sudo apt-get install libasound-dev portaudio19-dev libportaudio2 libportaudiocpp0

2. 再使用下面命令即可
pip install pyaudio

tomcat 安装配置apr

 tomcat  tomcat 安装配置apr已关闭评论
12月 302016
 

tomcat的运行模式有3种.修改他们的运行模式.3种模式的运行是否成功,可以看他的启动控制台,或者启动日志.或者登录他们的默认页面http://localhost:8080/查看其中的服务器状态。 

1)bio 

默认的模式,性能非常低下,没有经过任何优化处理和支持. 

2)nio 

利用java的异步io护理技术,no blocking IO技术. 

想运行在该模式下,直接修改server.xml里的Connector节点,修改protocol为 

 <Connector port="80" protocol="org.apache.coyote.http11.Http11NioProtocol" 
	connectionTimeout="20000" 
	URIEncoding="UTF-8" 
	useBodyEncodingForURI="true" 
	enableLookups="false" 
	redirectPort="8443" /> 

启动后,就可以生效。 

3)apr 

安装起来最困难,但是从操作系统级别来解决异步的IO问题,大幅度的提高性能. 

必须要安装apr和native,直接启动就支持apr。下面的修改纯属多余,仅供大家扩充知识,但仍然需要安装apr和native 

如nio修改模式,修改protocol为org.apache.coyote.http11.Http11AprProtoco

tomcat如何支持apr?

需要安装apr, apr-util,   openssl, tomcat-native(tomcat-native包在tomcat目录的bin目录下就有源码的压缩包,解压这个包,注意下版本,也可以在http://tomcat.apache.org/download-native.cgi下载,并在http://tomcat.apache.org/native-doc/miscellaneous/changelog.html中查看下支持的openssl和apr版本,然后到对应的网站下载适合的版本)

1. 从网站 http://apache.spd.co.il/apr/ 中下载apr-xxx.tar.gz

tar zxvf apr-1.xx.xx.tar.gz

cd apr-xxx

./configure

make && make install

默认安装在/usr/local/apr目录下,可以通过命令行参数 –prefix 指定,建议不要改。

2. 从网站 http://apache.spd.co.il/apr/ 中下载apr-util-xxx.tar.gz

tar zxvf apr-util-xxx.tar.gz

cd apr-util-xxx

./configure –with-apr=/usr/local/apr     (此处路径就是上面俺转apr的路径)

make && make install


3.  openssl安装,其实linux版本一般都自带openssl,可以通过命令: openssl version查看版本,如果太低,可以

https://www.openssl.org/source/下载openssl-xx.tar.gz包编译安装

tar zxvf openssl-xx.tar.gz

cd openssl-xx

./config

make && make install (默认安装在/usr/local/ssl/)


4.  安装tomcat-native ,建议使用tomcat自己bin目录下的tomcat-native.tar.gz,

 解压, 

tomcat-native-1.1.27-src的版本进入jni/native目录,查看 BUILDING文件,可以有详细的说明

tomcat-native-1.2.10-src的版本直接进入native目录,查看BUILDING文件,有详细的说明

在native目录下,输入

configure –with-apr=/usr/local/apr –with-ssl=/usr/local/ssl  

其中/usr/local/apr 和 /usr/local/ssl分别是上面安装的apr和openssl目录。

安装完成有提示文字告诉你安装到的位置, 上面路径默认安装在/usr/local/apr/lib


配置tomcat,其实在BUILDING文件有说明,具体是:

Using it in Tomcat
——————

1. In <Connector> use of conf/server.xml:
   protocol=”org.apache.coyote.http11.Http11AprProtocol”
2. In bin/setenv.sh add the following:
   CATALINA_OPTS=”$CATALINA_OPTS -Djava.library.path=/usr/local/apr/lib”
   

 tomcat下没有bin/setenv.sh 文件就新建一个,并有可执行权。



启动tomcat , 看到如下信息: 

信息: Starting ProtocolHandler [“http-apr-8080”]

成功!

关于openssl配置(单向):

单向SSL的概念:

客户端向服务器发送消息,服务器接到消息后,用服务器端的密钥库中的私钥对数据进行加密,然后把加密后的数据和服务器端的公钥一起发送到客户端,客户端用服务器发送来的公钥对数据解密,然后在用传到客户端的服务器公钥对数据加密传给服务器端,服务器用私钥对数据进行解密,这就完成了客户端和服务器之间通信的安全问题,但是单向认证没有验证客户端的合法性。

 

不使用apr情况:

(1)产生密钥库
keytool -genkeypair -alias tomcat -keyalg RSA -keysize 1024 -validity 365 -keystore /usr/local/apache-tomcat-6.0.18/keystore

(2)在Connector上配置密钥库
<Connector port=”8443″ protocol=”HTTP/1.1″ SSLEnabled=”true”
               maxThreads=”150″ scheme=”https” secure=”true”
               clientAuth=”false” sslProtocol=”TLS” keystoreFile=”/usr/local/tomcat/conf/keystore” keystorePass=”123456″/>

 

使用apr情况:

(1)产生密钥库

openssl genrsa -out rsa-private-key.pem 1024
openssl req -new -x509 -nodes -sha1 -days 365 -key rsa-private-key.pem -out self-signed-cert.pem

(2)在Connector上配置密钥库

<Connector port=”8443″ protocol=”HTTP/1.1″ SSLEnabled=”true”
               maxThreads=”150″ scheme=”https” secure=”true”
               clientAuth=”false” sslProtocol=”TLS” 
               SSLCertificateKeyFile=”/usr/local/tomat/rsa-private-key.pem”
               SSLCertificateFile=”/usr/local/tomat/self-signed-cert.pem”/>

 

出现:

Failed to initialize end point associated with ProtocolHandler ["http-apr-8443"]
java.lang.Exception: Connector attribute SSLCertificateFile must be defined when using SSL with APR

可以将: protocol=“HTTP/1.1″修改为  protocol=”org.apache.coyote.http11.Http11Protocol”, 之修改https的端口,不要修改原来支持apr的http的protocol