运维那点事4:搭建mysql(fedora20)
目录:
- 安装mysql(MariaDB);从Fedora 19以后,Fedora将mysql 替换成了mariadb。两者同源。
- 设置自启动;
- 启动服务;
- 配置开始 mysql_secure_installation;
- 自动配置后 看剩下的数据库;设置用户密码;创建数据库和对应的管理员;
- 设置编码
- 还原数据库的时候出现Access denied; you need the SUPER privilege for this operation的情况
内容:
- 安装mysql(MariaDB)
#yum install mysql-server
- 设置自启动
旧命令 #chkconfig --level 3 mysqld on
新命令 #systemctrl enable mysqld.service
这里新版本会出现错误,此时要换成#systemctrl enable mariadb.service
- 启动服务
#service mysqld start 或 #systemctrl start mysqld.service
- 自动配置开始 mysql_secure_installation
到了这一步,网上很多人习惯直接mysql然后修改用户名、密码、删除测试库、测试账户、远程root登录限制等;这里推荐运行 mysql_secure_installation,每一步都有提示,甚至每步直接回车即可(还是看看提示内容好点哈);
- 自动配置后
看剩下的数据库:
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 10
Server version: 5.5.37-MariaDB MariaDB Server
Copyright (c) 2000, 2014, Oracle, Monty Program Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MariaDB [(none)]> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)
看用户设置密码:
+------+-----------+-------------------------------------------+
| user | host | password |
+------+-----------+-------------------------------------------+
| root | localhost | *8FE3F0AC8CDC292A5F386E8BA3A61757EAE1E053 |
| root | 127.0.0.1 | |
| root | ::1 | |
+------+-----------+-------------------------------------------+
3 rows in set (0.00 sec)
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> select user, host, password from mysql.user;
+------+-----------+-------------------------------------------+
| user | host | password |
+------+-----------+-------------------------------------------+
| root | localhost | *8FE3F0AC8CDC292A5F386E8BA3A61757EAE1E053 |
| root | 127.0.0.1 | *8FE3F0AC8CDC292A5F386E8BA3A61757EAE1E053 |
| root | ::1 | *8FE3F0AC8CDC292A5F386E8BA3A61757EAE1E053 |
+------+-----------+-------------------------------------------+
3 rows in set (0.00 sec)
创建数据库和对应的管理员;
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all privileges on db_name .* to 'gzmh'@'%' identified by 'XXXXXXX';
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> select user, host from mysql.user;
+------+-----------+
| user | host |
+------+-----------+
| gzmh | % |
| root | 127.0.0.1 |
| root | ::1 |
| root | localhost |
+------+-----------+
4 rows in set (0.00 sec)
+----------+-----------+
| user | host |
+----------+-----------+
| gzmh | % |
| root | 127.0.0.1 |
| root | ::1 |
| root | localhost |
| songyang | localhost |
+----------+-----------+
5 rows in set (0.00 sec)
- 设置编码(参考http://heavengate.blog.163.com/blog/static/2023810532013312105131655/)
先查看编码:
MariaDB [(none)]>show variables like 'character%';
修改编码:
到mysql 配置文件进行配置。这里fedora下的数据库mariadb和一般的mysql文件位置有区别,如fedora20下是:
/etc/my.cnf.d
[root@localhost my.cnf.d]# ls
client.cnf mysql-clients.cnf server.cnf
[root@localhost my.cnf.d]#
但是节点都是一样的。稍微看下英语解释,了解作用域就OK哈。找好节点然后对号入座,如下:
default-character-set=utf8
在[mysqld]节点下添加
character-set-server=utf8
collation-server=utf8_general_ci
- Access denied; you need the SUPER privilege for this operation
用navicat for mysql 进行psc文件还原的时候,如果操作到视图,会出现以下错误:
Access denied; you need the SUPER privilege for this operation
参考了下http://hi.baidu.com/honfei/item/b94416af1700e317a8cfb7af文章。将原先的备份文件psc进行“提取SQL”,这时查看里面内容,就会发现有 DEFINER= ‘root’@'localhost'之类的东西。只要把里面这一部分,包括后面的localhost整个,替换成你当前数据库同用户名的用户。这里要保证你写所更换的,如换成“gzabc@%”,是有权限的就OK。别出现'gzabc'@'localhos't是有权限,而'gzabc'@'%'没权限哈。