返回目录:win7问题
内容导航:
一、二进制安装mysql
首先将准备的二进制MySQL安装包放到/opt下面(习惯把所有的安装包放在该目录下,方便后期管理)。
准备工作,查看有没有mariadb
yum list installed | grep mariadb mariadb.x86_64 1:5.5.68-1.el7 @base mariadb-libs.x86_64 1:5.5.68-1.el7 @base mariadb-server.x86_64 1:5.5.68-1.el7 @base yum remove -y mariadb.x86_64 mariadb-libs.x86_64 mariadb-server.x86_64 //删除mariadb
1.解压mysql
tar zxvf mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz
2.下载依赖(如果不下载依赖,在初始化的时候可能会出现问题)
yum install -y autoconf ncurses
3.移动MySQL到/user/local/下并重命名mysql(这一步也是为了方便管理,把程序、安装包等都分好类,放在各自的目录下面)
mv /opt/mysql-5.7.32-linux-glibc2.12-x86_64 /usr/local/mysql
4.创建mysql组和mysql用户(因为一会要把mysql要用到的文件,权限都改成mysql用户)
groupadd mysql useradd -r -g mysql mysql
5.创建数据目录并授予mysql用户和mysql组(这个目录是专门为mysql创建的)
mkdir -p /data/mysqlchown mysql:mysql -R /data/mysql
6.修改或添加my.cnf
[client]port = 3306socket = /tmp/mysql.sock[mysql]no-auto-rehash[mysqld]user = mysqlbasedir = /usr/local/mysqldatadir = /data/mysqlport = 3306socket = /tmp/mysql.socklog-error = /data/mysql/mysql.errpid-file = /data/mysql/mysql.pidslow_query_log_file = /data/mysql/slow.logcharacter-set-server = utf8open_files_limit = 65535max_connections = 100max_connect_errors = 100000lower_case_table_names =1
7.进入/usr/local/mysql/bin 并初始化mysql
cd /usr/local/mysql/bin./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
再次进入/data/mysql 目录下面可以看的多出好文件
/data/mysql目录下的文件
8.启动mysql
输入service mysql start 命令显示启动失败 这是因为使用启动命令时,系统会去/etc/init.d/下面去找该程序的启动文件,找不到当然会报错
root@mysql mysql]# service mysql start bash: mysql: command not found
把mysql的配置文件给移到/etc/init.d 下面并改名为mysql
cp /usr/local/mysql/support-files /etc/init.d/mysql
然后再启动MySQL就没有问题了
[root@mysql mysql]# service mysql start Starting MySQL.. SUCCESS!
9.进入MySQL
mysql不想mariadb一样,使用mysql_security....命令就可以进入重设密码,mysql自带初始密码,你可以选择两种方式进入到mysql内部然后修改成你需要的密码(推荐第二种方法)
方法一
查找mysq初始密码并登录
cat /data/mysql/mysql.err | grep temporary A temporary password is generated for root@localhost: !J9NWtiivwGL // !J9NWtiivwGL 这就是初始密码mysql -uroot -p!J9NWtiivwGL //登录数据库
方法二
跳过mysql认证并登录
编辑/etc/my.cnf 在mysqld里面添加skip-grant-tables 保存
跳过表认证
然后重启(千万别忘了重启)这样登录MySQL就不需要密码了
登录数据库
登录完成把密码修改成自己需要的密码,然后注释掉skip-grant-tables,之后再重启,方法二同样适用于忘记mysql密码重置密码
10.修改MySQL密码
MySQL [mysql]> use mysql;MySQL [mysql]> alter user user() identified by "密码" ; 或者 update user set user.authentication_string=password("密码") where user = 'root';Query OK, 0 rows affected, 1 warning (0.00 sec)Rows matched: 1 Changed: 0 Warnings: 1
其他更多关于数据库的基础操作,在我写的《SQL常用语句及分类》里面,写的还算仔细大家可以去看一下
二、linux怎么安装二进制mysql
1、到mysql官网下载mysql编译好的二进制安装包,在下载页面Select Platform:选项选择linux-generic,然后把页面拉到底部,64位系统下载Linux - Generic (glibc 2.5) (x86, 64-bit),32位系统下载Linux - Generic (glibc 2.5) (x86, 32-bit)
2、解压32位安装包:
进入安装包所在目录,执行命令:tar mysql-5.6.17-linux-glibc2.5-i686.tar.gz
3、复制解压后的mysql目录到系统的本地软件目录:
执行命令:cp mysql-5.6.17-linux-glibc2.5-i686 /usr/local/mysql -r
4、添加系统mysql组和mysql用户:
执行命令:groupadd mysql和useradd -r -g mysql mysql
5、安装数据库:
进入安装mysql软件目录:执行命令 cd /usr/local/mysql
修改当前目录拥有者为mysql用户:执行命令?chown -R mysql:mysql ./
安装数据库:执行命令?./scripts/mysql_install_db --user=mysql
修改当前目录拥有者为root用户:执行命令?chown -R root:root ./
修改当前data目录拥有者为mysql用户:执行命令?chown -R mysql:mysql data
到此数据库安装完毕
6、启动mysql服务和添加开机启动mysql服务:
添加开机启动:执行命令cp support-files/mysql.server /etc/init.d/mysql,把启动脚本放到开机初始化目录
启动mysql服务:执行命令service mysql start
执行命令:ps -ef|grep mysql 看到mysql服务说明启动成功
7、修改mysql的root用户密码,root初始密码为空的:
执行命令:./bin/mysqladmin -u root password '密码'
8、把mysql客户端放到默认路径:
ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql
注意:建议使用软链过去,不要直接包文件复制,便于系统安装多个版本的mysql
三、Linux上以二进制包形式安装Mysql 总是不成功,不知道是什么原因?
答案一你遵循brew install mysql的说明了吗?
用用户账户来执行以下命令:
1
unset TMPDIR
mysql_install_db --verbose --user=`whoami` --basedir="$(brew --prefix mysql)" --datadir=/usr/local/var/mysql --tmpdir=/tmp
若想在另一个文件夹中建立基础表,或者使用了不同的用户运行了mysqld,请查看mysql_install_db的帮助文档:
1
mysql_install_db --help
或者查看MySQL官方文档:
比如说你想使用’mysql’作为用户,你需要运行sudo命令:
1
sudo mysql_install_db ...options...
然后手动启动mysqld:
1
mysql.server start
注意:如果该操作失败的话,你可能是忘记运行前两步操作
答案二
尝试找到后缀名为”.err”的log文件,这里记录了更详细的信息。它可能位于:
1
/usr/local/var/mysql/your_computer_name.local.err
或许是由于权限问题:
检查是否有mysql实例正在运行:
1
ps -ef | grep mysql
如果是的话,你应该关掉它,或者直接杀掉进程:
1
kill -9 PID
其中PID是第一个命令输出的靠近用户名的那个数字(进程ID)
检查 /usr/local/var/mysql/的所有者:
1
ls -laF /usr/local/var/mysql/
如果它的所有者是root的话,你应该把它改成mysql或者你的用户名:
1
sudo chown -R mysql /usr/local/var/mysql/
答案三
译者注:我是使用该方法解决的。
我在我的Mac上存在同样的问题(我是严格按照brew install的说明来安装的)
删掉下面这个错误文件解决了我的问题:
1
sudo rm -rf /usr/local/var/mysql/dev.work.err (dev.work is my hostname)
这个对我起作用是由于dev.work.err是属于_mysql:wheel的,而不是我自己的用户名.更改“错误文件”的所有者可能也会起作用。
答案四
检查所有正在运行的MySQL进程:
1
$ ps aux | grep mysql
USER PID %CPU %MEM
_mysql 5970 0.0 0.4 ...
使用下面的命令杀死所有的进程:
1
$ sudo kill -9 [PID]
使用第一条命令获得的PID来代替[PID],比如说:5970
然后重启MySQL服务器:
1
$ mysql.server start
四、MySQL数据库二进制安装初始化报错
启动这个试试看/mysql/bin/mysqld_safe &
试试看我整理的笔记
1. 安装mysql
mysql-5.0.41-linux-i686-glibc23.tar.gz 由于mysql是二进制包。所以还是比较方便的。
直接解压。然后移动。
mv mysql-5.0.41-linux-x86_64-glibc23 /usr/local/mysql
cd /usr/local/mysql
groupadd mysql
useradd -g mysql mysql
chown -R mysql .
chgrp -R mysql .
chown -R root .
./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/home/
cp /usr/local/mysql/support-files/my-huge.cnf /etc/my.cnf
cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod 755 /etc/rc.d/init.d/mysqld
chkconfig –add mysqld
chkconfig --level 3 mysqld on
mv /usr/local/mysql/data /home/
chown -R mysql:mysql /home/
编辑/etc/my.cnf
在 [mysqld] 段增加
datadir = /home/
skip-innodb
wait-timeout = 10
max_connections = 512
max_connect_errors = 10000000
在 [mysqld] 段修改
max_allowed_packet = 16M
thread_cache_size = CPU个数*2
将 log-bin 注释
service mysqld start
bin/mysqladmin -u root -p