分类 【乱七八糟】 下的文章

windows安装64位MySQL(解压缩版)

其实网上大多数的教程也都有了,我这里记录一下我在windows 10上使用解压缩版MySQL遇到的问题。

基础环境:
Surface Pro 4 with Windows 10 专业版 64位
mysql-5.7.12-winx64 解压缩版

步骤:
第一步,解压缩后,在mysql-5.7.12-winx64的根目录设置my.ini文件,注意basedir和datadir两部分,按照实际情况修改:

[mysqld]
innodb_buffer_pool_size = 128M
bind-address = 0.0.0.0
port = 3306
basedir=C:/Software/mysql-5.7.12-winx64
datadir=C:/Software/mysql-5.7.12-winx64/data
max_connections=200
innodb_lock_wait_timeout = 50
# For InnoDB: Operating system error number 87 in a file operation.
innodb_flush_method=normal
character-set-server=utf8

[client]
port = 3306
default-character-set=utf8

[mysql]
no-auto-rehash
default-character-set=utf8

第二步,安装为系统服务:
在管理员权限的命令行终端下执行以下命令,同样路径需要根据实际情况修改

cd /d C:\Software\mysql-5.7.12-winx64\bin
mysqld --install MySQL
mysqld --initialize
net start mysqld

最坑的其实就是这一步,我手动在C:Softwaremysql-5.7.12-winx64中建立了data文件夹,但是始终在启动时报错:

c:\Software\mysql-5.7.12-winx64\bin>net start mysql
MySQL 服务正在启动 ..
MySQL 服务无法启动。

服务没有报告任何错误。

请键入 NET HELPMSG 3534 以获得更多的帮助。

在google上找到的答案:需要先执行mysqld --initialize进行data文件夹的初始化

最后,由于使用了initialize进行初始化,需要在日志中寻找初始化的root密码,默认情况下,在data目录中会有一个机器名.err的文件,在这里记录了初始化过程中生成的密码,比如我的就是在data目录中有一个Tan9le-Surface.err文件,大致的输出片段为:

2016-05-26T02:43:34.835489Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2016-05-26T02:43:35.587430Z 0 [Warning] InnoDB: New log files created, LSN=45790

2016-05-26T02:43:35.704147Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2016-05-26T02:43:35.804278Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: a4c07006-22eb-11e6-8260-5882a88f4235.
2016-05-26T02:43:35.819524Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2016-05-26T02:43:35.819524Z 1 [Note] A temporary password is generated for root@localhost: bgriTR,M*0!r
2016-05-26T02:43:56.391801Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2016-05-26T02:43:56.391801Z 0 [Warning] Insecure configuration for --secure-file-priv: Current value does not restrict location of generated files. Consider setting it to a valid, non-empty path.
2016-05-26T02:43:56.391801Z 0 [Note] MySQL (mysqld 5.7.12) starting as process 7840 ...

请注意

2016-05-26T02:43:35.819524Z 1 [Note] A temporary password is generated for root@localhost: bgriTR,M*0!r

这一行,提示了生成了临时的root密码:bgriTR,M*0!r
我们可以在命令提示终端先使用

mysql -uroot -pbgriTR,M*0!r

命令进入mysql的交互界面,这会我们可以看到提示:

mysql> use mysql

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

于是,执行:

ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
FLUSH PRIVILEGES;

这样下面就可以使用新密码new_password作为root密码来登录了

Mysql 5.5/5.6修改字符集为UTF-8

记得以前的mysql在client、mysqld、mysql三段加入default-character-set=utf8即可,但是在新的vps上安装了mysql 5.5以后发现这么修改导致无法启动,在这里记录一下新版本mysql的修改方法,用于备忘:

[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
collation-server = utf8_unicode_ci
init-connect=’SET NAMES utf8′
character-set-server = utf8

修改完成后重启mysql,然后使用:

SHOW VARIABLES LIKE 'character%';

查看字符集是否成功修改为:

mysql> SHOW VARIABLES LIKE 'character%';
+--------------------------+----------------------------+
| Variable_name            | Value                      |
+--------------------------+----------------------------+
| character_set_client     | utf8                       |
| character_set_connection | utf8                       |
| character_set_database   | utf8                       |
| character_set_filesystem | binary                     |
| character_set_results    | utf8                       |
| character_set_server     | utf8                       |
| character_set_system     | utf8                       |
| character_sets_dir       | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+

群晖开机自动挂载NFS分区

在Windows Server 2012R2上使用Hyper-V黑了一个群晖使用
硬件环境是HP Gen8,加到了10G内存,CPU依然是乞丐版,光驱位改为SSD,SATA1-4为 WD 4T * 4 红盘
本来想硬盘直通给黑群晖使用,但是考虑到万一挂掉了数据不好恢复,外加硬盘休眠的问题一直无法很理想的解决,所以就有了现在的方案:
hyper-v虚拟黑群晖,然后windows上把四块硬盘作带奇偶校验的存储资源池,然后通过NFS共享的方式给群晖加载使用,这样一来即保障了数据安全性,在windows上对于NFS文件夹也可以直接读写,方便管理,更重要的是再也不用纠结群晖到底是虚拟硬盘还是直通硬盘了。

网上有很多群晖挂载NFS的例子,大多数都是在计划任务里新建一个任务,来mount nfs格式分区,但这个方法很不爽的一点是,比如video,在启用video套件时,这个文件夹是不允许rename、mount等操作的,显示资源正忙,所以脚本的方法也不是很完美,结合台湾省的一个群晖论坛上的提示,我有了以下的方案:原文参考

1、ssh到群晖上,这个不用多说了,群晖得首先开启SSH服务,然后root用户的密码和初始化群晖时设置的密码一致;

2、编写开机自启动脚本:

vi /usr/syno/etc.defaults/rc.d/S99mount.sh

我这里索性将volume1里的所有文件夹都移动到了windows机器上,请注意替换实际的ip地址,具体内容为:

/bin/mount -t nfs -o hard 10.20.55.1:/music /volume1/music
/bin/mount -t nfs -o hard 10.20.55.1:/homes /volume1/homes
/bin/mount -t nfs -o hard 10.20.55.1:/photo /volume1/photo
/bin/mount -t nfs -o hard 10.20.55.1:/video /volume1/video
/bin/mount -t nfs -o hard 10.20.55.1:/svn /volume1/svn
/bin/mount -t nfs -o hard 10.20.55.1:/work /volume1/work
/bin/mount -t nfs -o hard 10.20.55.1:/document /volume1/document
/bin/mount -t nfs -o hard 10.20.55.1:/other /volume1/other

3、将开机脚本设置为全员可以执行

chmod a+x /usr/syno/etc.defaults/rc.d/S99mount.sh

4、在windows上设置nfs共享,这里我使用haneWIN NFS Server 2.1.16版本,虽然windows原生支持NFS,但是windows server 2012r2的nfs v3版本不支持utf-8编码,v4版本虽然支持,但是群晖作为客户端只有nfs v3,具体映射路径有:


D:\nfs\docker -name:docker 10.20.55.10
D:\nfs\music -name:music 10.20.55.10
D:\nfs\homes -name:homes 10.20.55.10
D:\nfs\photo -name:photo 10.20.55.10
D:\nfs\video -name:video 10.20.55.10
D:\nfs\svn -name:svn 10.20.55.10

5.勾选haneWIN NFS Server中的Server标签下的“UTF-8 character set”
6.点击haneWIN NFS Server中Exports标签下的“Restart Server”
7.为了保险,我把原来群晖/volume1下的所有文件夹做了一个备份:

mkdir /volume1/ori_bak
cd /volume1/ori_bak
mkdir @S2S @autoupdate @docker @tmp docker music @SynoDrive @cloudstation @download homes photo video @appstore @database @eaDir svn

cp -r  /volume1/@S2S/*  /volume1/ori_bak/@S2S/
cp -r  /volume1/@autoupdate/*  /volume1/ori_bak/@autoupdate/
cp -r  /volume1/@docker/*  /volume1/ori_bak/@docker/
cp -r  /volume1/@tmp/*  /volume1/ori_bak/@tmp/
cp -r  /volume1/docker/*  /volume1/ori_bak/docker/
cp -r  /volume1/music/*  /volume1/ori_bak/music/
cp -r  /volume1/@SynoDrive/*  /volume1/ori_bak/@SynoDrive/
cp -r  /volume1/@cloudstation/*  /volume1/ori_bak/@cloudstation/
cp -r  /volume1/@download/*  /volume1/ori_bak/@download/
cp -r  /volume1/homes/*  /volume1/ori_bak/homes/
cp -r  /volume1/photo/*  /volume1/ori_bak/photo/
cp -r  /volume1/video/*  /volume1/ori_bak/video/
cp -r  /volume1/@appstore/*  /volume1/ori_bak/@appstore/
cp -r  /volume1/@database/*  /volume1/ori_bak/@database/
cp -r  /volume1/@eaDir/*  /volume1/ori_bak/@eaDir/
cp -r  /volume1/svn/*  /volume1/ori_bak/svn/

8、重启群晖,再次ssh到群晖,到这一步其实已经ok了,然后我们要把备份的内容给还原到nfs对应的文件夹中:

cp -r /volume1/ori_bak/docker/* /volume1/docker/
cp -r /volume1/ori_bak/music/* /volume1/music/
cp -r /volume1/ori_bak/homes/* /volume1/homes/
cp -r /volume1/ori_bak/photo/* /volume1/photo/
cp -r /volume1/ori_bak/video/* /volume1/video/
cp -r /volume1/ori_bak/svn/* /volume1/svn/

9.大功告成,再次重启,验证

Windows上修改iTunes的默认备份、下载固件路径

备份的默认目录为系统安装盘的
C:Documents and SettingsUSERNAMEApplication DataApple ComputerMobileSyncBackup,随着时间的累计,无疑会给C盘造成很大的压力。

修改iTunes的默认固件下载路径:

mklink /d "C:\Users\tan9le\AppData\Roaming\Apple Computer\iTunes" e:\Apple\iTunes
为 C:\Users\tan9le\AppData\Roaming\Apple Computer\iTunes <<===>> e:\Apple\iTunes 创建的符号链接

修改iTunes的默认备份路径:

mklink /d "C:\Users\tan9le\AppData\Roaming\Apple Computer\MobileSync" e:\Apple\MobileSync
为 C:\Users\tan9le\AppData\Roaming\Apple Computer\MobileSync <<===>> e:\Apple\MobileSync 创建的符号链接