mysql 安装总结
系统: cxentos7
mysql版本:mysql-5.6.42-linux-glibc2.12-x86_64.tar.gz
添加mysql用户
一般启动mysql都是使用的mysql用户进程来启动。所以第一步,添加mysql用户 useradd mysql
。
解压重命名文件
解压上面的文件 tar -zxvf mysql-5.6.42-linux-glibc2.12-x86_64.tar.gz
拷贝到一个你指定的文件夹下面,然后重命名为一个短点的名字 mv mysql-5.6.42-linux-glibc2.12-x86_64 /home/cube/mysql
初始化数据库
这一步很关键,笔者当时卡在这里很久,因为执行脚本的位置很重要。当时笔者直接进入到scripts
下执行,这是非常致命的错误,最后初始化的数据库数据会在scripts 文件夹下面生成,显然这是不对的。我们实际的数据文件夹是在 mysql/data
下面。
chown -R mysql:mysql mysql
cd mysql
./scripts/mysql_install_db --user=mysql --basedir=/home/cube/mysql --datadir=/home/cube/mysql/data
上面一定要先改变下文件的权限,否则在初始化数据的时候就会因为权限不足导致失败。
当出现一下信息的时候说明数据库初始化成功。
OK
To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system
PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
To do so, start the server, then issue the following commands:
/home/cube/mysql/bin/mysqladmin -u root password 'new-password'
/home/cube/mysql/bin/mysqladmin -u root -h 78afdad83326 password 'new-password'
Alternatively you can run:
/home/cube/mysql/bin/mysql_secure_installation
which will also give you the option of removing the test
databases and anonymous user created by default. This is
strongly recommended for production servers.
See the manual for more instructions.
You can start the MySQL daemon with:
cd . ; /home/cube/mysql/bin/mysqld_safe &
You can test the MySQL daemon with mysql-test-run.pl
cd mysql-test ; perl mysql-test-run.pl
Please report any problems at http://bugs.mysql.com/
The latest information about MySQL is available on the web at
http://www.mysql.com
Support MySQL by buying support/licenses at http://shop.mysql.com
New default config file was created as /home/cube/mysql/my.cnf and
will be used by default by the server when you start it.
You may edit this file to change server settings
配置my.cnf文件
[mysqld]
basedir = /home/cube/mysql
datadir = /home/cube/mysql/data
port = 3306
socket = /home/cube/mysql/mysqld.sock
user=mysql
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
我们来启东试试下./support-files/mysql.server start
发现失败,错误信息如下:
bash-4.2# ./support-files/mysql.server start
./support-files/mysql.server: line 244: my_print_defaults: command not found
./support-files/mysql.server: line 264: cd: /usr/local/mysql: No such file or directory
Starting MySQL ERROR! Couldn't find MySQL server (/usr/local/mysql/bin/mysqld_safe)
发现,在启动服务的时候,去/usr/local/mysql
来找安装包,当我们使用yum来安装mysql的时候,会发现mysql的安装位置就是 /usr/local/mysql
,所以这里我们需要再次配置下路径。
配置 mysql.server
打开 vim ./support-files/mysql.server
配置下basedir
和 datadir
两个属性
basedir=/home/cube/mysql
datadir=/home/cube/mysql/data
好了,我们再来重启下试试。
启动服务
./support-files/mysql.server start
出现如下信息,说明启动成功
bash-4.2# ./support-files/mysql.server start
Starting MySQL.Logging to '/home/cube/mysql/data/78afdad83326.err'.
SUCCESS!
使用mysql连接
bin/mysql -uroot -P3306 -p
发现会出现如下的错误:
bash-4.2# bin/mysql -uroot -P3306 -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
错误显示的是找不到/tmp/mysql.sock
这个文件,记得在上面的my.cnf文件中,我们配置了socket的文件位置。
在 my.cnf 中配置client
属性,保证 mysql能够拿到正确的配置去连接。
[client]
port=3306
socket=/home/cube/mysql/mysqld.sock
同时,在连接的指定配置文件 --defaults-file=my.cnf
完整的如下:
./bin/mysql --defaults-file=my.cnf -uroot -p
进入会提示要输入密码,这里不用输入密码,直接回车即可进入。
最后,到此所有已经结束。剩下的还有一些需要完善的地方,比如 设置编码 ,设置日志文件等等。