মাইএসকিউএল কনফিগার করতে বা শুরু করতে পারে না


11

একদম নতুন কুবুন্টু 14.04 ইনস্টল করে, আমি দৌড়ে এসেছি sudo aptitude install mysql-server-core-5.6। কিছু কে-ডি-ই প্যাকেজের নির্ভরতার কারণে ইনস্টলটি সম্পন্ন করা যায়নি mysql-server-core-5.5, যা প্রতিস্থাপন করা হত। এখন আমি যখন চালনা sudo aptitude install mysql-server-5.5করি আমি একটি পাসওয়ার্ড নির্দিষ্ট করার পরে এই ত্রুটিটি পাই:

Configuring mysql-server-5.5
Unable to set password for the MySQL "root" user
An error occurred while setting the password for the MySQL administrative user. This may have happened
because the account already has a password, or because of a communication problem with the MySQL server.
You should check the account's password after the package installation.
Please read the /usr/share/doc/mysql-server-5.5/README.Debian file for more information.

আমি আসলে পড়েছি /usr/share/doc/mysql-server-5.5/README.Debianকিন্তু আমার পরিস্থিতির জন্য প্রাসঙ্গিক কিছু ছিল না। মাইএসকিউএল লগ সাহায্য করে:

$ tail /var/log/mysql/error.log 
140818 10:17:16 InnoDB: Completed initialization of buffer pool
140818 10:17:16 InnoDB: highest supported file format is Barracuda.
140818 10:17:16  InnoDB: Waiting for the background threads to start
140818 10:17:17 InnoDB: 5.5.38 started; log sequence number 1595675
140818 10:17:17 [ERROR] /usr/sbin/mysqld: unknown option '--explicit_defaults_for_timestamp'
140818 10:17:17 [ERROR] Aborting

140818 10:17:17  InnoDB: Starting shutdown...
140818 10:17:18  InnoDB: Shutdown completed; log sequence number 1595675
140818 10:17:18 [Note]

তবে কোন স্ক্রিপ্টে --explicit_defaults_for_timestampবিকল্পটি সেট করা আছে তা আমি খুঁজে পাচ্ছি না । আমি আবার শুরু করতে চেষ্টা mysqlছাড়া serviceএড়াতে --explicit_defaults_for_timestampবিকল্প কিন্তু এটি এখনও চালু হচ্ছে না:

$ ps aux | grep mysql
dotanco+ 25458  0.0  0.0  11748   928 pts/4    S+   10:30   0:00 grep --color=auto mysql

$ sudo mysqld_safe --skip-grant-tables &
[1] 25470
140818 10:30:54 mysqld_safe Can't log to error log and syslog at the same time.  Remove all --log-error configuration options for --syslog to take effect.
140818 10:30:54 mysqld_safe Logging to '/var/log/mysql/error.log'.
140818 10:30:54 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
140818 10:30:57 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

[1]+  Done                    sudo mysqld_safe --skip-grant-tables

$ ps aux | grep mysql
dotanco+ 25810  0.0  0.0  11748   932 pts/4    S+   10:31   0:00 grep --color=auto mysql

ত্রুটিটি আমাকে বলে Remove all --log-error configuration options। আমি তাই /etc/mysql/my.cnfনিম্নলিখিত লাইনে সম্পাদনা করেছি এবং মন্তব্য করেছি:

log-error  = /var/log/mysql/error.log

এখন আমি কোনও ত্রুটি পাই না তবে এখনও লগ ইন করতে পারি না:

$ sudo mysqld_safe --skip-grant-tables &
[1] 26558
140818 10:34:37 mysqld_safe Logging to syslog.
140818 10:34:38 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
140818 10:34:40 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended

[1]+  Done                    sudo mysqld_safe --skip-grant-tables

$ mysql -uroot
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

বিষয়টি কী হতে পারে? আমি কিভাবে এগিয়ে যেতে হবে?

সম্পাদনা

আমি এখন explicit-defaults-for-timestampলাইনটি ভিতরে মন্তব্য করেছি my.cnf। এখানে পুরো ফাইলটি, বিয়োগ শিরোনামের মন্তব্যগুলি:

$ cat /etc/mysql/my.cnf 

[client]
port            = 3306
socket          = /var/run/mysqld/mysqld.sock

[mysqld_safe]
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
nice            = 0

[mysqld]
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
lc-messages-dir = /usr/share/mysql
#explicit_defaults_for_timestamp

bind-address    = 127.0.0.1

#log-error      = /var/log/mysql/error.log

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

symbolic-links=0

!includedir /etc/mysql/conf.d/

আমি যখন মাইএসকিউএল চালানোর চেষ্টা করি তখন এটি ঘটে:

$ sudo echo 1 >> /var/log/mysql/error.log

$ tail /var/log/mysql/error.log 
140818 10:31:49  InnoDB: Waiting for the background threads to start
140818 10:31:50 InnoDB: 5.5.38 started; log sequence number 1595675
140818 10:31:50 [ERROR] /usr/sbin/mysqld: unknown option '--explicit_defaults_for_timestamp'
140818 10:31:50 [ERROR] Aborting

140818 10:31:50  InnoDB: Starting shutdown...
140818 10:31:51  InnoDB: Shutdown completed; log sequence number 1595675
140818 10:31:51 [Note] 
140818 10:31:51 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
1

$ sudo service mysql start
start: Job failed to start

$ tail /var/log/mysql/error.log 
140818 10:31:49  InnoDB: Waiting for the background threads to start
140818 10:31:50 InnoDB: 5.5.38 started; log sequence number 1595675
140818 10:31:50 [ERROR] /usr/sbin/mysqld: unknown option '--explicit_defaults_for_timestamp'
140818 10:31:50 [ERROR] Aborting

140818 10:31:50  InnoDB: Starting shutdown...
140818 10:31:51  InnoDB: Shutdown completed; log sequence number 1595675
140818 10:31:51 [Note] 
140818 10:31:51 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
1

$ grep explicit_defaults_for_timestamp /etc/mysql/my.cnf /etc/init.d/mysql /etc/default/mysql
/etc/mysql/my.cnf:#explicit_defaults_for_timestamp
grep: /etc/default/mysql: No such file or directory

যেমন দেখা যায়, লগগুলিতে নতুন কিছু লেখা হয় না এবং explicit_defaults_for_timestampবিকল্পটি কোথাও সেট করা হয় না।

আমি পুনরায় ইনস্টল করতে সক্ষম হয়েছি mysql-server-core-5.5কিন্তু এটি সমস্যার সমাধান করেনি:

$ sudo aptitude reinstall mysql-server-core-5.5
The following packages will be REINSTALLED:
  mysql-server-core-5.5 
0 packages upgraded, 0 newly installed, 1 reinstalled, 0 to remove and 0 not upgraded.
Need to get 3,213 kB of archives. After unpacking 0 B will be used.
Get: 1 http://il.archive.ubuntu.com/ubuntu/ trusty-updates/main mysql-server-core-5.5 amd64 5.5.38-0ubuntu0.14.04.1 [3,213 kB]
Fetched 3,213 kB in 1s (3,163 kB/s)                
(Reading database ... 217167 files and directories currently installed.)
Preparing to unpack .../mysql-server-core-5.5_5.5.38-0ubuntu0.14.04.1_amd64.deb ...
Unpacking mysql-server-core-5.5 (5.5.38-0ubuntu0.14.04.1) over (5.5.38-0ubuntu0.14.04.1) ...
Replaced by files in installed package mysql-common (5.6.20-1ubuntu14.04) ...
Processing triggers for man-db (2.6.7.1-1) ...
Setting up mysql-server-core-5.5 (5.5.38-0ubuntu0.14.04.1) ...

$ sudo service mysql status
mysql stop/waiting

$ sudo service mysql start
start: Job failed to start

$ tail /var/log/mysql/error.log 
140818 10:31:49  InnoDB: Waiting for the background threads to start
140818 10:31:50 InnoDB: 5.5.38 started; log sequence number 1595675
140818 10:31:50 [ERROR] /usr/sbin/mysqld: unknown option '--explicit_defaults_for_timestamp'
140818 10:31:50 [ERROR] Aborting

140818 10:31:50  InnoDB: Starting shutdown...
140818 10:31:51  InnoDB: Shutdown completed; log sequence number 1595675
140818 10:31:51 [Note] 
140818 10:31:51 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
1

যে 1লগ শেষ লাইনে সঙ্গে আগের যোগ করা হয়েছিল echo, এবং যে কিছুই নতুন লগ যোগ করা হয়েছিল ইঙ্গিত দেয়।


আপনি যখন নেটস্যাট-টেল্পএন চালান, আপনি কি মাইএসকিউএল এর জন্য 3306 বন্দরটি দেখতে পাচ্ছেন?
ক্রেগ এফ্রেইন

@ ক্রেইগফ্রেইন: না, পোর্ট 3306 শোনা যাচ্ছে না। আমি মাইএসকিউএল বুট শুরু হবে কিনা তা দেখতে এমনকি সিস্টেমটি পুনরায় চালু করেছি, তবে তা হয়নি।
dotancohen

এবং --expected_defaults_for_Timestamp, দেখার জন্য সম্ভাব্য জায়গা, যদি আপনি ইতিমধ্যে না থাকেন। /etc/mysql/my.cnf, /etc/init.d/mysql এবং / etc / default / mysql
ক্রেগ এফ্রেইন

ধন্যবাদ. স্ট্রিংটি timestampকেবলমাত্র পাওয়া গিয়েছিল etc/mysql/my.cnfএবং আমি এটি সম্পাদন করেছি। তবুও, লগতে আমি এখনও এটির একই উল্লেখ পেয়েছি।
ডটানকোহেন

আপনার বাড়ির ডিরেক্টরিতে একটি my.cnf আছে?
ভোরেস

উত্তর:


4

আপনি ইনস্টল করেছেন mysql-server-core-5.6, যা আংশিকভাবে ব্যর্থ হয়েছে বা আংশিকভাবে ইনস্টল হয়েছে।

-explicit_defaults_for_timestampশুধুমাত্র মাইএসকিউএল 5.6 জন্য। এটি সম্ভাব্য যে আংশিক ইনস্টলেশনটি mysql-server-core-5.6এই বিকল্পটি যুক্ত করেছে। আমি এখন আপনাকে পরামর্শ দিতে যাচ্ছি যে আপনি mysql-server-core-5.6ডেটা ডিরেক্টরিতে কোনও ট্রেস সরিয়ে পুনরায় নতুন করে ফেলুন ।

  1. যে কোনও চলমান মাইএসকিএলড প্রক্রিয়াটি মেরে ফেলুন:

    ps aux | grep mysql
    kill pid
    
  2. mysql-server-core-5.6প্যাকেজগুলি আনইনস্টল করুন :

    apt-get remove mysql-server-core-5.6

    ফাইলগুলির একটি তালিকা এখানে

  3. ডাটাবেস ডিরেক্টরিটি পুনরায় নতুন করে দিন:

    উ: rm -Rf /var/lib/mysql/*

    বি mysql_install_db /var/lib/mysql

  4. !includedir /etc/mysql/conf.d/বিকল্পটি মন্তব্য করুনmy.cnf


যে কোনও বিদ্যমান মাইএসকিউএল প্রক্রিয়াটিকে হত্যা করুন এবং তারপরে skip-grant-tablesঅপশনটি ব্যবহার করে মাইএসকিউএল শুরু করুন ।

উ: মাইএসকিএলডি ডেমনের সঠিক পথটি পান:

which mysqld_safe

খ। অনুদানের টেবিল ছাড়াই মাইএসকিউএল চালান:

/mysqld_safe_directory/mysqld_safe --skip-grant-tables &
ex /bin/mysqld_safe

সি। নিশ্চিত করুন যে মাইএসকিএল শুনছে:

netstat -tlpn 

আপনার 3306 পোর্টটি দেখতে হবে।

যদি তা হয় তবে মাইএসকিউএল এ লগইন করুন:

mysql -u root -h 127.0.0.1

E. নতুন পাসওয়ার্ড সেট করুন:

mysql> use mysql;
mysql> update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
mysql> flush privileges;
mysql> quit

ধন্যবাদ ক্রেগ আমি পুনরায় ইনস্টল করতে সক্ষম হয়েছি mysql-server-core-5.5কিন্তু এটি সমস্যার সমাধান করেনি। আমি এটি প্রশ্নের সাথে যুক্ত করব।
ডটানকোহেন

@ ডটানকোহেন, আমার উত্তর আপডেট করেছেন
ক্রেগ এফ্রেইন

ধন্যবাদ. আমি 5.6 এর কোনও চিহ্ন পুরোপুরি সরিয়েছি /var/lib/mysqlএবং উভয়ই rm'ed করেছি /var/log/mysqlmysql_install_dbকমান্ড ব্যর্থ resolveipপাওয়া যায়নি। আমি পেতে ইনস্টল mysql-server-5.5(যা দৃশ্যত বরাবর ইনস্টল করা হয় না mysql-server-core-5.5) পেতে resolveip। ইনস্টল করার সময় mysql-server-5.5আমি Unable to set password for the MySQL "root" userআবার ত্রুটি পেয়েছি , আবার স্কয়ার এক!
দোটানকোহেন

@ ডটানকোহেন আপডেট উত্তর এটি মাইএসকিউএল আসলে শুনছে কিনা তার উপর নির্ভর করে।
ক্রেগ ইফ্রেইন

ধন্যবাদ। বস্তুত, mysqld_safeসরাসরি ডাইস: 40818 16:52:52 mysqld_safe Logging to '/var/lib/mysql/bruno.err'., 140818 16:52:52 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql, 140818 16:52:54 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
dotancohen

1

আমার এই লাইনটি আমার সিএনএফ এ আছে

[pol@localhost mysql-5.6.19-linux-x86_64]$ grep expli my.cnf
explicit-defaults-for-timestamp = TRUE

আমি মনে করি যে my.cnf পরামিতিগুলিকে হাইফেনগুলি ব্যবহার করা উচিত এবং আন্ডারস্কোরগুলি নয়।


ধন্যবাদ. আপনি ঠিক বলেছেন, আমারও সেই লাইনটি ছিল যদিও আমি এটি মিস করেছি। এখন, মাইএসকিএল শুরু হবে না তবে লগগুলিতে কিছুই লেখা হয় না। আমি প্রশ্ন আপডেট করব।
dotancohen

আমি জানি যে জুবুন্টুতে (Unক্য ডেস্কটপ স্ট্যান্ড করতে পারে না!) এই জাতীয় সমস্যাগুলির সাথে আমার একটি সময়ের শয়তান ছিল। আমি এখন উৎস থেকে তৈরি - আপনি আগ্রহী হলে, আমি লিখতে করব কিভাবে আমি এটা করতে ঠিক । আমি যা করি তা অনেক পরীক্ষার এবং ত্রুটির পরে এখান থেকে অভিযোজিত । এটি সুডো অ্যাপটি গেট এক্সএক্সএক্সএক্সের চেয়ে কিছুটা বেশি কাজ তবে কমপক্ষে আমি জানি যে আমার ফাইলগুলি কোথায় এবং যদি জিনিসগুলি ভুল হতে শুরু করে তবে কী করতে হবে!
ভোরেস

আপনাকে ধন্যবাদ, যদি আমি এটির মাধ্যমে না পেতে পারি তবে আপনি যে নির্দেশাবলিতে লিঙ্ক করেছেন সেটি আমি চেষ্টা করব।
dotancohen

ঠিক আছে, এটি সেই লোকদের জন্য যারা গ্রহণের মাধ্যমে মাইএসকিএল সংকলন করতে এবং চালাতে চান - আমি এটিকে এমন কারও সাথে খাপ খাইয়েছি যারা কেবলমাত্র মাইএসকিএলটি সাধারণত চালাতে চায়। আপনি 5.5 ব্যবহার করছেন কেন?
ভোরেস

আসলে, আমি 5.6 পছন্দ করব এবং আমি গ্রহনটি ব্যবহার করি না।
dotancohen
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.