MySQL安装和服务无法启动-3534解决

应该是配置文件没有设置好,多见于绿色版吧,安装版一般没问题
有问题卸载重装大法能解决大部分问题啦~

MySQL安装

在配置文件写入下列信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8
[mysqld]
#设置3306端口
port = 3306
# 设置mysql的安装目录
basedir=D:\mysql\mysql-5.6.17-winx64
# 设置mysql数据库的数据的存放目录
datadir=D:\mysql\mysql-5.6.17-winx64\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB

CMD管理员运行进入bin目录执行mysqld install即可

服务无法启动

成功安装以后,启动MySQL,输入:

net start mysql

提示:

”MySQL 服务无法启动,服务没有报告任何错误,请键入 NET HELPMSG 3534 以获得更多的帮助。”

查了下,在当前目录下输入:

mysqld-initialize

mysqld --initialize-insecure

还是出错,又查了下,原因是:

mysqld –initialize-insecure自动生成无密码的root用户
mysqld –initialize自动生成带随机密码的root用户。
data文件夹不为空是不能执行这个命令的。

解决办法:
先删除data目录下的所有文件或者移走。

服务器安装

一般服务器安装的都不是官方原版,而是基于原版的衍生版,使用方面和原生的操作完全一样,但是性能方面会有大大的提高,常见的衍生版有 MariaDB 和 PerconaServer,前者是原作者的另一个项目,后者性能有显著提升

安装后常用的操作是:
修改/设置 root 的密码:mysqladmin -u root password "root"
设置为允许远程客户端访问(生产环境为安全不会开启):

1
2
3
4
-- grant all privileges on . to 'root' @'%' identified by 'root';
GRANT ALL ON *.* TO admin@'%' IDENTIFIED BY 'admin' WITH GRANT OPTION;
-- admin@'%' 其中admin是用户名,“%”是允许任何ip的访问,密码为admin。
flush privileges;

还有就是不要忘了开启防火墙:

1
2
/sbin/iptables -I INPUT -p tcp --dport 3306 -j ACCEPT
/etc/rc.d/init.d/iptables save

mysql 客户端每次访问 db,mysql 就会试图去解析来访问的机器的 hostname,并缓存到 hostname cache,这样会导致连接速度变慢,我们可以设置关闭这个功能,当然是测试环境时,为了安全还是…..
编辑 vim /etc/my.cnf ,在 [mysqld] 下面添加 skip-name-resolve 然后重启 MySQL 服务就可以了

设置编码

首先通过 show variables like 'character_set_%'; 查看 mysql 字符集
默认编码为 latin1,当然是不支持中文的,所以还是改成 u8 比较好伐,修改 /etc/my.inf 配置文件,主要就是在下面的两个节点下追加一条配置:

1
2
3
4
5
[client] 
default-character-set=utf8

[mysqld]
character-set-server=utf8

然后重启 MySQL 的服务即可,网上很多资源都是在 [mysqld] 下添加 :default-character-set=utf8 ,如果这样改会导致 5.7 版本 mysql 无法打开,所以要改为 character-set-server=utf8 ,所以要考虑版本问题啊….

1
2
3
4
5
6
7
8
-- 修改数据库的编码
ALTER DATABASE dbtest CHARACTER SET utf8 COLLATE utf8_general_ci;
-- ALTER DATABASE dbtest CHARACTER SET utf8; -- 简单修改

-- 修改表的编码
ALTER TABLE tbtest CHARACTER set utf8 COLLATE utf8_general_ci;
-- 修改字段编码
ALTER TABLE tbtest MODIFY email VARCHAR(60) CHARACTER SET utf8 COLLATE utf8_general_ci;
喜欢就请我吃包辣条吧!

评论框加载失败,无法访问 Disqus

你可能需要魔法上网~~