mysql-——实用向

 

对于线上要使用的mysql  最好使用源码编译安装  因为那样我们对这个工具知根知底 但对于要求不高的开发测试环境或者要基于mysql的工具来说  简单的安装方式就更高了。 当然,二进制方式安装是最快速的 但是 我们需要包以及一些讨厌的依赖关系。所以用yum这是简单粗暴的办法是最好不过了。

以下都是一些实用的的mysql安装,修改默认路径,基础命令等,已经模块化。读者们可以直接在页面查询需要的模块。

 

简单de目录:

  1. mysql安装(centos7.4)
  2. centos下简单的设置(密码,允许远程登陆和几个常见报错)
  3. redis安装(centos和ubuntu)
  4. ubuntu安装mysql
  5. ubuntu下简单的设置
  6. MySql查看数据库中所有表的创建时间等信息
  7. Mysql 复制表结构包括索引

1,mysql安装:

系统:centos 7.4:

在CentOS中默认安装有MariaDB,这个是MySQL的分支,但为了需要,还是要在系统中安装MySQL,而且安装完成之后可以直接覆盖掉MariaDB。

1 下载并安装MySQL官方的 Yum Repository

[root@localhost ~]# wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm

  使用上面的命令就直接下载了安装用的Yum Repository,大概25KB的样子,然后就可以直接yum安装了。

[root@localhost ~]# yum -y install mysql57-community-release-el7-10.noarch.rpm

  之后就开始安装MySQL服务器。

[root@localhost ~]# yum -y install mysql-community-server

  这步可能会花些时间,安装完成后就会覆盖掉之前的mariadb。

至此MySQL就安装完成了,然后是对MySQL的一些设置。

2,设置

然后5.7是默认有密码的   不喜欢去找 直接跳过自己设置:

修改/etc/my.cnf

vim /etc/my.cnf 

配置文件最后一行添加skip-grant-tables

保存后重启mysql:systemctl restart mysqld即可免密登录

然后直接mysql -uroot(不要加p)

mysql>use mysql;
mysql> update mysql.user set authentication_string=password('*******') where user='root';

mysql> flush privileges;

 

修改完成后输入exit退出,重新回到/etc/my.cnf该文件删除之前添加语句即可完成

报错:如果修改密码之后 登录mysql后提示这个:

mysql> show databases;

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

mysql> use mysql;

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

修改密码即可:

SET PASSWORD = PASSWORD('***************');   (密码必须要大写字母+数字+特殊符号)

 

错误:ERROR 1130: Host '192.168.1.3' is not allowed to connect to thisMySQL serve

错误1130:主机192.168.1.3”不允许连接到thismysql服务

原因:被连接的数据不允许使用 192.168.1.3访问,只允许是用 localhost;

 

 

解决办法:

可能是你的帐号不允许从远程登陆,只能在localhost。这个时候只要在localhost的那台电脑,登入mysql后,更改"mysql" 数据库里的 "user" 表里的 "host"项,从"localhost"改称"%"

 1、启用 cmd 

输入 : mysql -u -root -p 

若是提示 ‘mysql’不是内部或外部命令,也不是可运行的程序.那需要配置环境变量  在配置 path 变量添加 “……\mysq\/MYSQL Server5.7\bin”

 

 

总体运行语句:

mysql -u root -p

mysql>use mysql;

mysql>select 'host' from user where user='root';

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

mysql>flush privileges;

mysql>select 'host'   from user where user='root';

 

运行完毕后再次连接测试,若还不行重启mysql服务,或是直接重启电脑 

3,redis安装(centos和ubuntu) 

安装redis也是如此:(centos)

$ yum -y install redis
$ systemctl start redis

Ubuntu:

$ apt-get install redis-server

$ /etc/init.d/redis-server start

4,ubuntu安装mysql

ubuntu系统解决方案:

1、安装Mysql

sudo apt-get install mysql-server

sudo apt-get install mysql-client

sudo apt-get install libmysqlclient-dev

2、设置root密码

use mysql

update user set plugin='mysql_native_password' where user='root'; (不要修改)

update user set authentication_string=password('123456') where user='root'; (123456可以更改为自己的密码)

flush privileges;

3、配置远程访问

注释掉在/etc/mysql/mysql.conf.d/mysqld.cnf里面的bind-address = 127.0.0.1

连接mysql数据库,修改user表

grant all on *.* to 'root'@'%' identified by '123456' with grant option;

flush privileges;

5,简单的设置

ubuntu下修改mysql默认data路径

由于ubuntu默认的mysql路径是在/var/lib/mysql下,很多时候我们如果没有挂载其它分区在/var的时候,随着网站逐渐浏览和添加内容,数据容量也会越来越大,自然磁盘空间也会比较吃紧。因此我们就需要把mysql的data路径转移到其它目录下。

设置新data路径(假设新路径为/data/mysql)这里需要说明的就是,最开始我图省事使用了mv来移动,随后发现在设置完路径后mysql无法访问。因此为了保险起见还是按照这里的步骤来吧。

 

建立新的路径

sudo mkdir -p /mnt/mysql

复制数据

sudo cp -a /var/lib/mysql/* /mnt/mysql

修改文件夹权限

sudo chown -R mysql:mysql /mnt/mysql

修改配置文件

sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

查找并用#注释以下

datadir = /var/lib/mysql

新增

datadir = /mnt/mysql

 

需要提醒的是:单只修改mysql的config文件是不够的,在你重启mysql服务的时候会发现启动失败。原因则是ubuntu里有一个访问控制系统apparmor,因此我们还需要在这里修改一下才能完全成功。

 

修改安全保护文件

sudo vim /etc/apparmor.d/usr.sbin.mysqld

查找并用#注释以下两节

/var/lib/mysql r,

/var/lib/mysql/** rwk,

新增

/mnt/mysql/ r,

/mnt/mysql/** rwk,

修改访问控制文件

sudo vim /etc/apparmor.d/abstractions/mysql

注释掉

/var/lib/mysql{,d}/mysql{,d}.sock rw,

新增

/mnt/mysql{,d}/mysql{,d}.sock rw,

重启服务(必须重启才能生效对apparmor的修改)

/etc/init.d/apparmor restart

/etc/init.d/mysql restart

 

这时候再访问就会发现已经修改成功了,数据的读写都经由新路径实现。

可以进入数据库输入:

SHOW GLOBAL VARIABLES LIKE 'datadir';查看一下


6,MySql查看数据库中所有表的创建时间等信息:

(1)show table status;该方法不会按创建时间排序

(2)SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = '数据库名' ORDER BY create_time DESC;

7, Mysql 复制表结构包括索引

复制表结构:
CREATE TABLE   新表名   LIKE    SELECT  *  FROM 模板表名;

或者:

create table 新表名 select * from 数据库.模板表名;(如果是其他数据库则前面增加数据库名即可)

但是这样创建的表结构一致,但是索引却没有。
如果需要索引:如下:

CREATE TABLE 新表名   LIKE  模板表名;
 

这是复制表结构+索引

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值