您的位置:首页 > 运维架构 > Linux

centos7.0 阿里巴巴学生服务器搭配环境实录(3)--mysql环境搭建

2016-02-26 02:38 651 查看
喵唔,虽然我现在很困很累,但是我要坚持在医院把今晚的mysql搭建实录写下来,记录今晚的心酸屎

----------------------------------------------华丽的分割线------------------------------------------------------------------------

centos7搭建mysql环境

首先centos7 已经不支持mysql,内部集成了mariadb,而安装mysql的话会和mariadb的文件冲突,所以需要先卸载掉mariadb,以下为卸载mariadb,安装mysql的步骤。

#列出所有被安装的rpm package

rpm -qa | grep mariadb
强制卸载

rpm -e --nodeps mariadb-libs-5.5.37-1.el7_0.x86_64


CentOS7的yum源中默认好像是没有mysql的。为了解决这个问题,我们要先下载mysql的repo源。

wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm[/code] 
安装mysql-community-release-el7-5.noarch.rpm包

sudo rpm -ivh mysql-community-release-el7-5.noarch.rpm


安装mysql

sudo yum install mysql-server


这样就搞定啦,然后第一步要重置代码

登录时有可能报这样的错:ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (2),原因是/var/lib/mysql的访问权限问题。下面的命令把/var/lib/mysql的拥有者改为当前用户:


sudo chown -R openscanner:openscanner /var/lib/mysql
然后,重启服务:

$ service mysqld restart
接下来登录重置密码:

$ mysql -u root
mysql > use mysql;
mysql > update user set password=password(‘123456‘) where user=‘root‘;
mysql > exit;
ps:这样我在做的时候没有成功,所以你可以再尝试下面的方法

方法1: 用SET PASSWORD命令

  mysql -u root

  mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('newpass');

方法2:用mysqladmin

  mysqladmin -u root password "newpass"

  如果root已经设置过密码,采用如下方法

  mysqladmin -u root password oldpass "newpass"

方法3: 用UPDATE直接编辑user表

  mysql -u root

  mysql> use mysql;

  mysql> UPDATE user SET Password = PASSWORD('newpass') WHERE user = 'root';

  mysql> FLUSH PRIVILEGES;

在丢失root密码的时候,可以这样

  mysqld_safe --skip-grant-tables&

  mysql -u root mysql

  mysql> UPDATE user SET password=PASSWORD("new password") WHERE user='root';

  mysql> FLUSH PRIVILEGES;


然后重启

如何启动/停止/重启MySQL
  一、启动方式
  1、使用 service 启动:service mysqld start
  2、使用 mysqld 脚本启动:/etc/inint.d/mysqld start
  3、使用 safe_mysqld 启动:safe_mysqld&
  二、停止
  1、使用 service 启动:service mysqld stop
  2、使用 mysqld 脚本启动:/etc/inint.d/mysqld stop
  3、mysqladmin shutdown
  三、重启
  1、使用 service 启动:service mysqld restart
  2、使用 mysqld 脚本启动:/etc/inint.d/mysqld restart
  提问 编辑摘要
  如何启动/停止/重启MySQL
  一、启动方式
  1、使用 service 启动:service mysqld start
  2、使用 mysqld 脚本启动:/etc/inint.d/mysqld start
  3、使用 safe_mysqld 启动:safe_mysqld&
  二、停止
  1、使用 service 启动:service mysqld stop
  2、使用 mysqld 脚本启动:/etc/inint.d/mysqld stop
  3、mysqladmin shutdown
  三、重启
  1、使用 service 启动:service mysqld restart
  2、使用 mysqld 脚本启动:/etc/inint.d/mysqld restart


然后接下来要解决乱码问题:

mysql中文乱码问题

回到刚刚的问题,更新数据,数据中带中文,不成功,错误大概是这样的

MYSQL写入数据时报错ERROR 1366 (HY000): Incorrect string value: '\xE8\x8B\xB1\xE5\xAF\xB8...' for c

然后,我们要做的主要就是将mysql的编码都改为utf-8.这个问题,我之前在我的window的mysql下解决过,主要就是改my.ini文件,将latin1的都改为utf-8.

[plain] view
plain copy

[mysql]

default-character-set=utf8

还是从头说下,首先,要从终端进入mysql,或者在mysql weorkbench中,输入[show variables like 'character%'],



然后发现,database和server都是latin1,所以需要修改这两个为utf-8.输入命令[vi /etc/my.cnf],打开,发现我的my.cnf中的内容,比我看到的所有人提供的资料中的内容都要少.比如这篇文章中CentOS 6.5安装MySQL中文乱码问题解决 ,说

[plain] view
plain copy

[client]

default-character-set = utf8 #这个是我添加的

只有这一句是他添加的,可是我的my.cnf中根本没有[client],也没有[mysql],只有一个[mysqld].于是我根据这篇文章中的,CentOS7下让MySQL支持中文 内容修改,基本上全部拷贝他提供的,比如他在[mysql]中添加最后一句,我则是将这三句都拷过来.

[mysql]

no-auto-rehash

default-character-set=utf8

最后说明下我主要加了,这些东西,最后,大概是变成这样.对于mysqld,不仅改变了server的编码,并且还设置新建的表的存储引擎和排序规则.

[plain] view
plain copy

[mysqld]

port = 3306

socket = /var/lib/mysql/mysql.sock

default-storage-engine=INNODB

character-set-server=utf8

collation-server=utf8_general_ci

[client]

port = 3306

socket = /var/lib/mysql/mysql.sock

default-character-set=utf8

[mysql]

no-auto-rehash

default-character-set=utf8

然后,在终端,输入【service mysql restart】,重启mysql服务.如果,此时终端在mysql中,输入【exit】,退出mysql.再输入【service mysql restart】,就可以了.PS,如果你的my.cnf改的有问题的话,【service mysql restart】会执行很长时间,表示不成功的.而没有问题的话,大概3-4秒中,重启就可以完成了.

然后再查看【show variables like 'character%'】,数据库编码就成功了,都是utf-8,除了filesystem,一直都是binaray,二进制外.

然后为了以防万一,重新建立数据库officialsystem,然后用命令【show create databse officialsytem】,看出数据库的编码,为utf8.

接下来,还是初始化一遍管理员的数据,和backstage的数据,通过界面更新backstage数据,成功.

接下来就是新建数据库和导入数据库了,这个就看你自己百度啦!
linux删除目录很简单,很多人还是习惯用rmdir,不过一旦目录非空,就陷入深深的苦恼之中,现在使用rm -rf命令即可。
直接rm就可以了,不过要加两个参数-rf 即:rm -rf 目录名字
-r 就是向下递归,不管有多少级目录,一并删除
-f 就是直接强行删除,不作任何提示的意思
KO 搞定
---------------------------------------------------------------------------2016-04-26分割线------------------------------------------------------------------------------------------------------------
修改字符编码可以通过以下方式修改
通过MySQL命令行修改:(编码可选)
mysql> set character_set_client=utf8;
mysql> set character_set_connection=utf8;
mysql> set character_set_database=utf8;
mysql> set character_set_results=utf8;
mysql> set character_set_server=utf8;
mysql> set character_set_system=utf8;
mysql> set collation_connection=utf8;
mysql> set collation_database=utf8;
mysql> set collation_server=utf8;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: