发表于: 2018-03-27 21:56:58

2 3340


今天完成的事情:

1.服务器部署,还是服务器部署


先附上mysql官网的安装文档

https://dev.mysql.com/doc/refman/5.7/en/data-directory-initialization-mysqld.html


今天踩在mysql这个坑上了

昨天免费使用的,今天买了一个腾讯云的,10元1月


系统:


服务器系统:centOS


linux目录结构:

http://www.360doc.com/content/16/0721/16/2723346_577322798.shtml


没操作过linux,昨天按着教程,今天上午看了linux的一些相关的资料


然后把需要的jdk和mysql装在 /usr/local/ (本地安装文件)目录下


然后把数据表传上去,在服务器运行sql文件:

没想到这么久

14:33到15:29

4092896条数据,将近一个小时


查看mysql的目录

[root@VM_129_126_centos ~]# whereis mysql
mysql: /usr/bin/mysql /usr/lib64/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz

然后设置本地访问服务器,然后连接不到,看了资料,把服务器安全组接口打开。

后来发现一个问题,mysql输入 mysql -uroot -p 进不去

直接输入mysql回车就能进去。

然后使用密码就进不去(Access denied,拒绝访问 。

就在这就进不去了,

新建用户,Access denied 

更改密码,Access denied 

更改权限,Access denied 

更改localhost127.0.0.1,Access denied 

都是Access denied 

后来又发现数据库也不显示了,show databases只有一个information数据库,进不去,改不了,不能创建。


重装

在官网下载二进制的,重新安装

解压以后复制到usr/local/mysql目录下

然后创建mysql用户和用户组 groupadd mysql和useradd -r -g mysql mysql

进入目录,修改当前目录拥有者为mysql:chown -R mysql:mysql ./

然后初始化数据库的时候报错,装的是5.7的


执行 ./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data/mysql/ 

报错文件或者目录没有找到,是5.7改了data文件到bin下面,添加了data目录


然后执行 ./bin/mysql_install_db --user=mysql

报错:

2018-03-27 18:46:25 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize
2018-03-27 18:46:25 [ERROR] The data directory needs to be specified.

弃用,请尝试mysqld

mysqld --initialize --user=mysql --datadir=/usr/local/mysql/

提示:

-bash: mysqld: command not found

找到原因:这是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下就找不到命令,我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件。


把mysqld添加到/usr/bin

ln -s /usr/local/mysql/bin/mysqld /usr/bin

再执行可以识别命令,但还是错误

mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory

没有这样的文件或目录


然后打开etc/my.cnf看到:

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock


然后执行 mysqld --initialize --user=mysql --datadir=/var/lib/mysql

还是同样的错误

再执行了:

bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/

2018-03-27 19:23:02 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize
2018-03-27 19:23:02 [ERROR]   Child process: /usr/local/mysql/bin/mysqldterminated prematurely with errno= 32
2018-03-27 19:23:02 [ERROR]   Failed to execute /usr/local/mysql/bin/mysqld --bootstrap --datadir=/usr/local/mysql/data --lc-messages-dir=/usr/local/mysql/share --lc-messages=en_US --basedir=/usr/local/mysql

-- server log begin --

-- server log end --

依然没有


查看了下

--basedir 指定了安装 MySQL 的安装路径,填写全路径可以解决相对路径所造成的问题。

--datadir 指定 MySQL 的数据库文件放在什么路径下。数据库文件即我们常说的 MySQL data 文件。


于是执行:mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data/

报错:mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory

提示找不到文件或者目录,但是我路径下有文件夹啊。遂继续查资料,发现可能是libnuma.so.l是32位的。

于是就删除装64位的

yum remove libnuma.so.1

yum install numactl.x86_64


重新执行:

mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data/

可以了

2018-03-27T11:42:04.792924Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2018-03-27T11:42:05.733233Z 0 [Warning] InnoDB: New log files created, LSN=45790
2018-03-27T11:42:06.010896Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2018-03-27T11:42:06.128010Z 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: dff80303-31b3-11e8-96c0-5254009a7ba1.
2018-03-27T11:42:06.136762Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2018-03-27T11:42:06.137380Z 1 [Note] A temporary password is generated for root@localhost: i%YZeuUXu4Fr


切回cd /usr/local/mysql

再把拥有者切回root:sudo chown -R root:root /usr/local/mysql   

启动报错:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)

使用systemctl status mysqld.service命令查看报错原因:

Unit mysqld.service could not be found.


查找了一下,发现是mariadb.service没有启动的原因

mariadb.service是一个类似mysql安全向导的东西

执行:systemctl enable mariadb.service

发现:Failed to start mariadb.service: Unit not found.

于是安装:yum install -y mariadb-server

再次执行mysql,终于可以启动了


然后,又遇到问题了。


修改密码——>ERROR 3009 (HY000):

修改host——>ERROR 1046 (3D000):

进入库修改——>ERROR 1146 (42S02): Unknown error 1146

进入mysql库修改——>ERROR 1062 (23000):


使用系统分配的密码登陆报错——>ERROR 1045(28000):Unknown error 1045



于是查看mysql数据库

MySQL [(none)]> use mysql;

提示:

Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed

查看表

MySQL [mysql]> show tables;

+---------------------------+
| Tables_in_mysql           |
+---------------------------+
| columns_priv              |
| db                        |
| event                     |
| func                      |
| general_log               |
| help_category             |
| help_keyword              |
| help_relation             |
| help_topic                |
| host                      |
| ndb_binlog_index          |
| plugin                    |
| proc                      |
| procs_priv                |
| proxies_priv              |
| servers                   |
| slow_log                  |
| tables_priv               |
| time_zone                 |
| time_zone_leap_second     |
| time_zone_name            |
| time_zone_transition      |
| time_zone_transition_type |
| user                      |
+---------------------------+
24 rows in set (0.00 sec)


进入安全模式,查找用户


MySQL [mysql]> delete from user where user='';
Query OK, 2 rows affected (0.00 sec)


删除了空用户,依然进不去。唯一可以进去的是-uroot 不输入密码。

但是没有权限。表依然可以使用。


看了官网,查看目录权限: ls -la /usr/local/mysql/data


都是mysql

于是更改目录权限

[root@VM_129_126_centos ~]# chown -R root /usr/local/mysql/data
[root@VM_129_126_centos ~]# chgrp -R root /usr/local/mysql/data

再次查看:


更改了权限,但是登陆依然报错


· 正常的表都可以使用,增删改查都可以,但只能在本地,空用户的使用。但是远程访问需要权限,而且需要账号密码,就是因为这个不能改动,一动就错。



明天计划的事情:


换个版本再装一次,或者按照官网再装一次。再不行换个姿势再来。

如果不行就先部署其它的了。

先找个比较正式的资料查看一遍流程。


遇到的问题:


ERRORERROR

ERRORERROR

ERRORERROR

ERRORERROR

ERRORERROR

ERRORERROR

ERRORERROR

ERRORERROR

或许有些地方没有注意,比如配置文件什么的。因为根本不知道要配置什么。

还有今天用谷歌和360写不成日志,打开没有编辑窗口,用的火狐。


收获:


熟悉操作linux的一些常用命令

熟悉了mysql的各项安装操作

又浪费了一天(也不能算浪费),这两天该办的事一个都没有办,脸上笑嘻嘻,心里mmp

——错的越多,认识的也就越多



返回列表 返回列表
评论

    分享到