更换Mariadb库为mysql 5.7

摘要:
MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。比如要安装5.6版本,将5.7源的enabled=1改成enabled=0,然后再将5.6源的enabled=0改成enabled=1即可。查看当前的启用的MySQL版本:yumrepolistenabled|grepmysql3、安装MySQLyuminstallmysql-community-server安装过程中一直输入"y"就可以了,当出现下面的结果时,就代表mysql数据库安装成功了4、测试启动mysql服务:systemctlstartmysqld登录进Mysql:mysql-uroot或mysql如果出现错误:ERROR1045:Accessdeniedforuser'root'@'localhost'则说明mysql安装完后给root用户生成了一个默认密码,所以你需要使用密码登录。

https://www.cnblogs.com/get-rich/articles/10623208.html

entOS 7 版本将MySQL数据库软件从默认的程序列表中移除,用MariaDB代替了,MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可。开发这个分支的原因之一是:甲骨文公司收购了MySQL后,有将MySQL闭源的潜在风险,因此社区采用分支的方式来避开这个风险。MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。

方法一:通过yum来进行mysql的安装

由于我安装的CentOS7.4默认安装了MariaDB,所以我只需要启动mariadb数据库就可以正常使用mysql了

(安装mariadb:yum install mariadb-server mariadb)

systemctl start mariadb

更换Mariadb库为mysql 5.7第1张

mariadb数据库的相关命令是:
systemctl start mariadb #启动MariaDB
systemctl stop mariadb #停止MariaDB
systemctl restart mariadb #重启MariaDB
systemctl enable mariadb #设置开机启动

安装mariadb后显示的也是 MariaDB [(none)]> ,可能看起来有点不习惯

接下来我们重新安装MySQL

1、卸载mariadb

yum list installed | grep mariadb #检查mariadb是否已安装

更换Mariadb库为mysql 5.7第2张

yum -y remove mariadb* #全部卸载

更换Mariadb库为mysql 5.7第3张

2、下载并安装mysql的YUM源

下载mysql的YUM源:wget -P /home/lisonglin http://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm(wget命令:http://man.linuxde.net/wget)

更换Mariadb库为mysql 5.7第4张

由于我们是下载到/home/lisonglin目录下,所以先切换到该目录下:cd /home/lisonglin

安装mysql的YUM源:rpm -ivh mysql57-community-release-el7-11.noarch.rpm

更换Mariadb库为mysql 5.7第5张

检查mysql的YUM源是否安装成功:yum repolist enabled | grep "mysql.*-community.*"

更换Mariadb库为mysql 5.7第6张

看到上图所示表示安装成功

选择要启用的mysql版本

查看mysql版本,执行:yum repolist all | grep mysql

可以看到 5.5, 5.6,8.0 版本是默认禁用的

更换Mariadb库为mysql 5.7第7张

可以通过类似下面的语句来启动或禁用某些版本

yum-config-manager --enable mysql57-community

yum-config-manager --disable mysql56-community

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

注意: 任何时候,只能启用一个版本。

查看当前的启用的 MySQL 版本:yum repolist enabled | grep mysql

更换Mariadb库为mysql 5.7第8张

3、安装MySQL

yum install mysql-community-server

安装过程中一直输入"y"就可以了,当出现下面的结果时,就代表mysql数据库安装成功了

更换Mariadb库为mysql 5.7第9张

4、测试

启动mysql服务:systemctlstartmysqld

登录进Mysql(我的刚安装完时没有密码):mysql -uroot或mysql

更换Mariadb库为mysql 5.7第10张

如果出现错误:ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

则说明mysql安装完后给root用户生成了一个默认密码,所以你需要使用密码登录。

mysql -uroot -p 回车 然后输入默认密码即可登录myql。

关于如何查看默认密码,可以参考:CentOS7.4中安装了Mysql5.7之后如何查看默认密码

可能用到的命令:

systemctl start mysqld #启动mysqld

systemctl stop mysqld #停止mysqld

systemctl restart mysqld #重启mysqld

systemctl enable mysqld #设置开机启动

systemctl status mysqld #查看 MySQL Server 状态

5、mysql相关配置

设置密码

mysqladmin -u root password 'new-password'

或set password for 'root'@'localhost' = password('123456');

设置完密码之后就可以使用mysql -u root -p 命令来登录我们的mysql数据库了

更换Mariadb库为mysql 5.7第11张

防火墙设置

远程访问 MySQL, 需开放默认端口号 3306.

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

执行firewall-cmd --reload使最新的防火墙设置规则生效

远程访问设置

创建一个普通用户 sa ,密码是123456
CREATE USER 'sa'@'%' IDENTIFIED BY '123456';
给这个用户授予 SELECT,INSERT,UPDATE,DELETE 的远程访问的权限,这个账号一般用于提供给实施的系统访问
GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'sa'@'%';
创建一个管理员用户 admin 账号 ,密码是 123456
CREATE USER 'admin'@'%' IDENTIFIED BY '123456';
给这个用户授予所有的远程访问的权限。这个用户主要用于管理整个数据库、备份、还原等操作。
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%';

设置用户 root 可以在任意 IP 下被访问:
grant all privileges on *.* to root@"%" identified by "新密码";
设置用户 root 可以在本地被访问:
grant all privileges on *.* to root@"localhost" identified by "新密码";

使授权立刻生效
flush privileges;

设置字符集

一般的,为了支持中文,我们应该将字符集设为 UTF-8, 执行SHOW VARIABLES LIKE 'character%';

查看当前 MySQL 字符集

更换Mariadb库为mysql 5.7第12张

可以看到默认服务器的字符器是 latin1 ,对中文不友好。修改 /etc/my.cnf 文件,添加字符集的设置

[mysql]

default-character-set = utf8

[mysqld]

character_set_server = utf8

重启 MySQL ,可以看到字符集已经修改了

其他常用配置:

[plain]view plaincopy

  1. [mysqld]
  2. basedir=path#使用给定目录作为根目录(安装目录)。
  3. datadir=path#从给定目录读取数据库文件。
  4. pid-file=filename#为mysqld程序指定一个存放进程ID的文件(仅适用于UNIX/Linux系统);
  5. socket=/tmp/mysql.sock#为MySQL客户程序与服务器之间的本地通信指定一个套接字文件(Linux下默认是/var/lib/mysql/mysql.sock文件)
  6. port=3306#指定MsSQL侦听的端口
  7. key_buffer=384M#key_buffer是用于索引块的缓冲区大小,增加它可得到更好处理的索引(对所有读和多重写)。
  8. 索引块是缓冲的并且被所有的线程共享,key_buffer的大小视内存大小而定。
  9. table_cache=512#为所有线程打开表的数量。增加该值能增加mysqld要求的文件描述符的数量。可以避免频繁的打开数据表产生的开销
  10. sort_buffer_size=2M#每个需要进行排序的线程分配该大小的一个缓冲区。增加这值加速ORDERBY或GROUPBY操作。
  11. 注意:该参数对应的分配内存是每连接独占!如果有100个连接,那么实际分配的总共排序缓冲区大小为100×6=600MB
  12. read_buffer_size=2M#读查询操作所能使用的缓冲区大小。和sort_buffer_size一样,该参数对应的分配内存也是每连接独享。
  13. query_cache_size=32M#指定MySQL查询结果缓冲区的大小
  14. read_rnd_buffer_size=8M#改参数在使用行指针排序之后,随机读用的。
  15. myisam_sort_buffer_size=64M#MyISAM表发生变化时重新排序所需的缓冲
  16. thread_concurrency=8#最大并发线程数,取值为服务器逻辑CPU数量×2,如果CPU支持H.T超线程,再×2
  17. thread_cache=8##缓存可重用的线程数
  18. skip-locking#避免MySQL的外部锁定,减少出错几率增强稳定性。
  19. [mysqldump]
  20. max_allowed_packet=16M#服务器和客户端之间最大能发送的可能信息包
  21. [myisamchk]
  22. key_buffer=256M
  23. sort_buffer=256M
  24. read_buffer=2M
  25. write_buffer=2M

其他可选参数:
back_log = 384
指定MySQL可能的连接数量。 当MySQL主线程在很短时间内接收到非常多的连接请求,该参数生效,主线程花费很短时间检查连接并且启动一个新线程。 back_log参数的值指出在MySQL暂时停止响应新请求之前的短时间内多少个请求可以被存在堆栈中。 如果系统在一个短时间内有很多连接,则需要增大该参数的值,该参数值指定到来的TCP/IP连接的侦听队列的大小。 试图设定back_log高于你的操作系统的限制将是无效的。默认值为50。对于Linux系统推荐设置为小于512的整数。
max_connections = n
MySQL服务器同时处理的数据库连接的最大数量(默认设置是100)。超过限制后会报 Too many connections 错误
key_buffer_size = n
用来存放索引区块的RMA值(默认设置是8M),增加它可得到更好处理的索引(对所有读和多重写)
record_buffer:
这里写代码片 每个进行一个顺序扫描的线程为其扫描的每张表分配这个大小的一个缓冲区。 如果你做很多顺序扫描,你可能想要增加该值。默认数值是131072(128K)
wait_timeout:
服务器在关闭它之前在一个连接上等待行动的秒数。
interactive_timeout:
服务器在关闭它前在一个交互连接上等待行动的秒数。 一个交互的客户被定义为对 mysql_real_connect()使用 CLIENT_INTERACTIVE 选项的客户。 默认数值是28800,可以把它改为3600。
skip-name-resolve
禁止MySQL对外部连接进行DNS解析,使用这一选项可以消除MySQL进行DNS解析的时间。 但需要注意,如果开启该选项,则所有远程主机连接授权都要使用IP地址方式,否则MySQL将无法正常处理连接请求!
log-slow-queries = slow.log
记录慢查询,然后对慢查询一一优化
skip-innodb
skip-bdb
关闭不需要的表类型,如果你需要,就不要加上这个
备份、还原
方法1:命令行
备份
mysqldump --socket=/var/lib/mysql/mysql.sock --single-transaction=TRUE -u root -p mysql> Solin.sql
还原
mysql --socket=/var/lib/mysql/mysql.sock -u root -p mysql< Solin.sql

免责声明:文章转载自《更换Mariadb库为mysql 5.7》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇webpack打包(1)pl/sql中的取模运算下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

java部署ubuntu后中文显示问号问题

1、首先先回忆自身项目的编码格式,即在本地进行编码时使用的编码格式。UTF-82、检测tomcat的设置问题,在web.xml和server中的设置:server.xml中: <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443...

ubuntu16.04里如何正确添加用root用户来登录图形界面(图文详解)

  不多说,直接上干货! Ubuntu版本都默认不允许使用root登录,必须要改配置文件。 第一步:   首先设置root密码,利用现有管理员帐户登陆Ubuntu,在终端执行命令:sudo passwd root,接着输入密码和root密码,重复密码。这样就有了可用的root用户。  第二步:   默认情况是不允许用root帐号直接登录图形界面的。这可以...

Mysql对用户的操作

1.创建用户语法:CREATE USER 用户名@地址 IDENTIFIED BY '密码'; 2.给用户授权语法:GRANT 权限1, … , 权限n ON 数据库.* TO 用户名 3.撤销授权语法: REVOKE权限1, … , 权限n ON 数据库.* FROM 用户名 4.查看用户权限语法:SHOW GRANTS FOR 用户名 5.删除用户语法...

sql-优化建议

1. 查询 SQL 尽量不要使用 select *,而是 select 具体字段 反例: select * from employee; 正例: select id,name from employee; 理由: 只取需要的字段,节省资源、减少网络开销; select * 进行查询时,很可能就不会使用到覆盖索引了,就会造成回表查询。 2. 如果知道...

mysql 4.0.26 安装流程

引用:http://hi.baidu.com/bdczg/blog/item/e0f475951c8a9f47d0135ef9.html http://www.sudu.cn/info/index.php?op=article&id=114305 MYSQL小档案: 软件版本:4.0.26 软件大小:25.6MB 软件语言:英文版 软件类型:免费软...

解决Ubuntu的root账号无法登录SSH问题-Permission denied, please try again.

刚安装了Ubuntu 14.04 server的虚拟机,普通帐号可以远程登录,但是root不行,输入密码后一直报错: permission denied 最后发现ssh的配置(/etc/ssh/sshd_config)不大一样,14.04的默认配置是: PermitRootLogin without-password 改为: PermitRootLogin...