目录:
-
windows
-
linux
-
yum
-
tar
参考文章:https://blog.csdn.net/xyang81/article/details/51759200 (yum安装)
http://www.cnblogs.com/sybblogs/p/5633956.html (tar安装)
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/installing.html (官网手册)
下载:
https://dev.mysql.com/downloads/
Windows下:
my.ini 的查找过程:
在mysql下完zip版后,直接解压,相当于我们的mysql就算是安装完毕,只是没有设置启动配置。
官方zip安装参考文档:https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/windows-choosing-package.html
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/windows-install-archive.html
1. 添加系统环境变量(可选)
>MYSQL_HOME = D:programmysql-5.7.23-winx64
>PATH=%MYSQL_HOME%in;
2.修改mysql的默认文件路径
在mysql下查找 my-default.ini文件,如果没有则新添加一条 my.ini,目前基本都没有。
参考官网的my.ini内容 :https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/windows-create-option-file.html
https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/option-files.html
打开文件修改/添加:
[mysqld] port=3306 basedir=D:programmysql-5.7.23-winx64 datadir=D:programmysql-5.7.23-winx64data
※注意:如果路径找不到,请换成正斜杠。
3. 以管理员身份运行命令提示符,如果不是管理员身份可能会被拒绝。
错误信息:Install/Remove of the Service Denied!
>cmd 在搜索中输入命令提示符或者cmd,右键以管理者身份运行。
※注意:如果想看到更多的信息,也可用 mysqld-debug 代替 mysqld 试运行。
> mysqld --initialize-insecure --user=mysql (不生成密码,在高版本基本用这种)
或
> mysqld --initialize --user=mysql(生成随机密码)
※注意:(--initialize-insecure此种会生成一个空密码,如果用 --initialize会生成一个随机密码
root密码查找:在my.ini中有个dataurl,在这个地址中有个**.error,会记录日志信息。其中
root@localhost: 后面的即为root密码。)
参见官网:https://docs.oracle.com/cd/E17952_01/mysql-5.7-en/data-directory-initialization.html
全初始化样例(注:可将basedir,datadir写入my.ini.):
bin/mysqld --initialize (初始化) --user=mysql (开启默认mysql库,将granted信息记录) --basedir=/opt/mysql/mysql --datadir=/opt/mysql/mysql/data --defaults-file=C:my.ini (默认配置文件) --console (开启控制台输出日志)
--log-error
(错误日志打印)
>mysqld -install mysql57 (将其写入服务中,服务名mysql57)
>mysqld -remove mysql57 (移除)
##如果出现 NET HELPMSG 3534 错误
1. 则查看启动的mysql的名字(在服务中看)
2. mysqld --initialize-insecure 不加用户名密码尝试
※:binmysqld 用于对mysql服务端的操作。
》mysqld --verbose --help (查看帮助)
5. 启动mysql
>net start mysql57
>net stop mysql57
>net restart mysql57
另一种方式,在mysql下直接操作
》binmysqld --user=mysql --console & (启动 或最直接 》binmysqld)
》mysqladmin -u root shutdown (关闭)
6.登录
如果“mysqld --initialize”是有随机码的登录使用随机码:
》mysql -u root -p
如果没有mysqld --initialize-insecure的使用:
》mysql -u root --skip-password
修改root密码:
》ALTER USER 'root'@'localhost' IDENTIFIED BY 'root-password'
;
因root账号一般不对外开放采用localhost,因此要新创建一个新的非root账号。
如果有开启skip_name_resolve
,在登录后使用以下命令创建root和密码。
》CREATE USER 'root'@'127.0.0.1' IDENTIFIED BY 'root-password
';
7. 测试
>mysql -u root -p
>binmysql -h localhost -P 3307 -u root -p
>mysql test
* 注意:最好是安装msi的,方便简单。
下载地址: https://downloads.mysql.com/archives/installer/
msi 下载msi的mysql-installer,然后启动 【add...】 选择 【mysql server】安装即可。
安装后的data文件和my.ini会在隐藏的文件夹下 C:ProgramData
Linux下:
1. yum安装
》wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm 下载mysql安装包
》yum localinstall mysql57-community-release-el7-8.noarch.rpm
》yum repolist enabled | grep "mysql.*-community.*" //查看是否安装,如果存在信息则mysql源安装成功
》yum install mysql-community-server //安装server
》systemctl start mysqld // 启动
》systemctl status mysqld // 查看启动状态
》systemctl enable mysqld // 设置开机自启动
》systemctl daemon-reload // 设置开机自启动
mysql在5.7版本后安装完会自动生成一个root随机密码,且放在 /var/log/mysqld.log 文件中
>grep 'password' /var/log/mysqld.log //获取密码
>mysql -u root -p //登录修改密码
>ALTER USER 'root'@'localhost' IDENTIFIED BY '*****'; //新密码,root的临时密码登录后都要被替换,默认强度是中 MEDIM :大小写和数字特殊字符
>show variables like '%password%'; --- 查看密码强度
》set global validate_password_policy=0; // 修改密码策略,为低 0:low,1:medium,2:stronge
也可在/etc/my.cnf文件中添加:
validate_password_policy=0;
设置编码utf8,在/etc/my.cnf文件中添加:
character_set_server=utf8
default
-
character
-
set
=utf8 (这个会导致mysql启动不了)
》systemctl restart mysqld //重启应用
创建远端登录账号:
》GRANT ALL PRIVILEGES ON *.* TO 'username'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;
2.tar.gz
》tar -zxvf mysql-5.5.40-linux2.6-x86_64.tar.gz -C /usr/local
》cd /usr/local
》ln -s mysql-5.5.40-linux2.6-x86_64.tar.gz mysql
》groupadd mysql
》useradd -r -g mysql mysql
》chown -R mysql:mysql ./mysql
》cp support-files/mysql.server /etc/init.d/mysql
》cp ./support-files/my-medium.cnf /etc/my.cnf //注意my.cnf中的内容,如果路径不一致可参考下面的内容
my.cnf内容
[client] port = 3306 socket = /tmp/mysql.sock [mysqld] init-connect='SET NAMES utf8' basedir=/usr/local/mysql5.7 #根据自己的安装目录填写 datadir=/usr/local/mysql5.7/data #根据自己的mysql数据目 socket=/tmp/mysql.sock max_connections=200 # 允许最大连接数 character-set-server=utf8 # 服务端使用的字符集默认为8比特编码的latin1字符集 default-storage-engine=INNODB # 创建新表时将使用的默认存储引擎
log-error=/usr/local/mysql/log/mysqld.log #错误日志
》./scripts/mysql_install_db --user=mysql
》./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data //初始化如果看到下面有password则为初始登录密码
》service mysql start //启动
如果启动失败参考:The server quit without updating PID file
也有可能是登录时mysql下的my.cnf权限错误:修改root的my.cnf 权限调整为mysql :》chrown -R mysql:mysql my.cnf
》mysql -u root -p
初始化登录时,密码为空,登录后需要立即修改
>ALTER USER 'root'@'localhost' IDENTIFIED BY '*****'; //因root账号具有特殊性,不便于对外公开。
如果修改语句报错,则使用
》use mysql;
》UPDATE user SET Password=PASSWORD('123456') where USER='root';
》 FLUSH PRIVILEGES;
InnoDB: Error: log file ./ib_logfile0 is of different size 50331648 bytes
参考: https://blog.csdn.net/yabingshi_tech/article/details/51205968