錯誤以下:mysql
root@solaris:/usr/local/mysql# /usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize ld.so.1: mysql: fatal: libCrunG3.so.1: open failed: No such file or directory Killed
ldd命令查看mysqld執行所須要的庫文件c++
root@solaris:/usr/local/mysql# ldd /usr/local/mysql/bin/mysqld libstdc++.so.6 => /usr/lib/64/libstdc++.so.6 libstdc++.so.6 (GLIBCXX_3.4.20) => (version not found) libgcc_s.so.1 => /usr/lib/64/libgcc_s.so.1 libCrunG3.so.1 => (file not found) libc.so.1 => /lib/64/libc.so.1 libmtmalloc.so.1 => /usr/lib/64/libmtmalloc.so.1 libsocket.so.1 => /lib/64/libsocket.so.1 libnsl.so.1 => /lib/64/libnsl.so.1 libm.so.2 => /lib/64/libm.so.2 librt.so.1 => /lib/64/librt.so.1 libatomic.so.1 => /usr/lib/64/libatomic.so.1 libmp.so.2 => /lib/64/libmp.so.2 libucrypto.so.1 => /lib/64/libucrypto.so.1 libpthread.so.1 => /lib/64/libpthread.so.1 libelf.so.1 => /lib/64/libelf.so.1 libcryptoutil.so.1 => /lib/64/libcryptoutil.so.1 libz.so.1 => /lib/64/libz.so.1
能夠看到Solaris11.3中libstdc++.so.6是一個link文件sql
ls -l /usr/lib/64/libstdc++.so.6 lrwxrwxrwx 1 root root 19 Oct 17 17:45 /usr/lib/64/libstdc++.so.6 -> libstdc++.so.6.0.18
這個問題我也卡了好久,沒找到有效資料,string libstdc++.so.6.0.18 | grep GLIBCXX 這條命令並不適用Solaris11.3socket
能夠用pvs命令查看庫文件this
root@solaris:/usr/local/mysql# pvs /usr/lib/64/libstdc++.so.6.0.18 libm.so.2 (SUNW_1.2); libc.so.1 (SUNW_1.22, SUNWprivate_1.1); libgcc_s.so.1 (GCC_4.2.0); libstdc++.so.6; GLIBCXX_3.4; GLIBCXX_3.4.1; GLIBCXX_3.4.2; GLIBCXX_3.4.3; GLIBCXX_3.4.4; GLIBCXX_3.4.5; GLIBCXX_3.4.6; GLIBCXX_3.4.7; GLIBCXX_3.4.8; GLIBCXX_3.4.9; GLIBCXX_3.4.10; GLIBCXX_3.4.11; GLIBCXX_3.4.12; GLIBCXX_3.4.13; GLIBCXX_3.4.14; GLIBCXX_3.4.15; GLIBCXX_3.4.16; GLIBCXX_3.4.17; GLIBCXX_3.4.18; GLIBCXX_3.4.19; CXXABI_1.3; CXXABI_1.3.1; CXXABI_1.3.2; CXXABI_1.3.3; CXXABI_1.3.4; CXXABI_1.3.5; CXXABI_1.3.6; CXXABI_1.3.7; CXXABI_TM_1;
能夠看到確實沒有GLIBCXX_3.4.20版本atom
解決辦法:
編譯安裝gcc4.9,過程就不在這裏寫了,我直接用的原來編譯好的tar包,而後用gcc裏面的庫文件代替libstdc++.so.6.0.18,過程以下code
root@solaris:~# mkdir /usr/gcc root@solaris:~# tar -xf gcc4.9.tar.gz root@solaris:~# mv 4.9 /usr/gcc/ root@solaris:~# mv /usr/lib/64/libstdc++.so.6 /usr/lib/64/libstdc++.so.6.bak root@solaris:~# ln -s /usr/gcc/4.9/lib/amd64/libstdc++.so.6.0.20 /usr/lib/64/libstdc++.so.6
此時ldd查看server
root@solaris:/usr/local/mysql# ldd ./bin/mysqld libstdc++.so.6 => /usr/lib/64/libstdc++.so.6 libgcc_s.so.1 => /usr/lib/64/libgcc_s.so.1 libCrunG3.so.1 => (file not found) libc.so.1 => /lib/64/libc.so.1 libmtmalloc.so.1 => /usr/lib/64/libmtmalloc.so.1 libsocket.so.1 => /lib/64/libsocket.so.1 libnsl.so.1 => /lib/64/libnsl.so.1 libm.so.2 => /lib/64/libm.so.2 librt.so.1 => /lib/64/librt.so.1 libatomic.so.1 => /usr/lib/64/libatomic.so.1 libpthread.so.1 => /lib/64/libpthread.so.1 libmp.so.2 => /lib/64/libmp.so.2 libucrypto.so.1 => /lib/64/libucrypto.so.1 libelf.so.1 => /lib/64/libelf.so.1 libcryptoutil.so.1 => /lib/64/libcryptoutil.so.1 libz.so.1 => /lib/64/libz.so.1
GLIBCXX的問題解決了,可是又提示libCrunG3.so.1找不到,把文件拷貝到/usr/lib/64/下ci
root@solaris:/usr/local/mysql# cp /root/libCrunG3.so.1 /usr/lib/64/
此時ldd mysqld已經沒有報錯,能夠開始初始化input
root@solaris:~# /usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize 2018-10-17T10:41:29.143880Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details). 2018-10-17T10:41:34.828810Z 0 [Warning] InnoDB: New log files created, LSN=45790 2018-10-17T10:41:35.756604Z 0 [Warning] InnoDB: Creating foreign key constraint system tables. 2018-10-17T10:41:35.840912Z 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: 386b2928-d1f9-11e8-9e9b-9e1aa5f0c1f7. 2018-10-17T10:41:35.843805Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened. 2018-10-17T10:41:35.845870Z 1 [Note] A temporary password is generated for root@localhost: L9!TrOyPaiiS root@solaris:/usr/local/mysql# ./support-files/mysql.server start Starting MySQL .Logging to '/usr/local/mysql/data/solaris.err'. . SUCCESS! root@solaris:/usr/local/mysql# /usr/local/mysql/bin/mysql -uroot -p'L9!TrOyPaiiS' mysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 2 Server version: 5.7.23 Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved. Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Type 'help;' or '\h' for help. Type '\c' to clear the current input statement. mysql>
啓動過程可能還會遇到其餘問題,這裏就不寫了